ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Firebase PHP数据提交-arrayValue,mapValue

2019-10-24 20:31:08  阅读:137  来源: 互联网

标签:mapping google-cloud-firestore arrays php


我正在尝试使用PHP和Google API将数据推送到Firestore数据库.

在我在网上看到的文档和示例中,我能够在发送数据时使用mapValue和arrayValue.

我使用的示例如下:

[
    "orderName" => [
        "stringValue" => "Gbeila Aliu Wahab"
    ],
    "orderLocationName" => [
        "stringValue" => "Accra Mall Limited"
    ],
    "orderTotalAmount" => [
        "doubleValue" => 150.5
    ],
    "orderDescription" => [
        "stringValue" => "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
    ],
    "orderLocationGeoPoints" => [
        "geoPointValue" => (object) [
            "latitude" => 5.5557, 
            "longitude" => -0.1963
        ]
    ],
    "orderStatus" => [
        "stringValue" => "NotAssigned"
    ],
]

这工作得很好,但是当我尝试发送对象或数组时,出现以下错误返回给我:

"message": "Invalid JSON payload received. Unknown name \"map_value\" at 'document.fields[0].value': Proto field is not repeating, cannot start list.",

尝试使用以下代码映射值时:-

"orderName" => [
    "mapValue" => ["Gbeila Aliu Wahab", 123]
]

// or

"orderName" => [
    "arrayValue" => [
        "first" => [
            "stringValue" => "test"
        ], 
        "second" => [
            "stringValue" => "test123"
        ]
    ]
]

我尝试了许多变体来尝试使它起作用.

我应该如何使用mapValue和arrayValue我可以看到很多有关value选项的提及,但是我看不到任何有关如何使用它们的示例.

任何帮助将不胜感激.

解决方法:

根据the documentation.,正在生成的数组或映射的有效载荷不正确.您需要将实际数据(要存储)包装在values键下,最终数组应为:

["orderName" => ["arrayValue" => ["values" => [["stringValue" => "test"], ["stringValue" => "test123"]]]]]

同样,您的mapValue应该为

["orderName" => ["mapValue" => ["fields" => ["field1" => ["stringValue" => "Gbeila Aliu Wahab"]]]]]

另外,您可以通过this package.与其他数据映射器一起玩

标签:mapping,google-cloud-firestore,arrays,php
来源: https://codeday.me/bug/20191024/1923136.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有