Firebase Firestore REST示例

6

你好,我想编写一个脚本,使用firebase firestore并将一些JSON写入firestore中的特定集合。我已经在实时数据库中完成了这个操作,但是firestore略有不同。下面是能够正常工作的实时数据库片段:

curl -X POST \
-d '{"param1":"'"$1"'", "param2":"'"$2"'"}' \
https://xxxx.firebaseio.com/xxxx.json?

感谢您的帮助。

2
Cloud Firestore是一种完全不同于Firebase实时数据库的数据库。Firestore REST API的文档可以在此处找到:https://firebase.google.com/docs/firestore/use-rest-api - Frank van Puffelen
3个回答

22

阅读了文档后,我得到了这个结果。

curl -X POST \
-H "Content-Type: application/json" \
-d'{
"fields": {
"Field1": {
"stringValue": "'"$var1"'"
},
"Field2": {
"stringValue": "'"$var2"'"
},
"Field3": {
"stringValue": "$var3"
}
}
}'\"https://firestore.googleapis.com/v1beta1/projects/**PROJECT_ID**/databases/(default)/documents/**COLLECTION_ID**?&key=(YOUR API KEY)"

你有发布数组的示例吗? - user2399432
1
你从哪里获取你的API密钥? - Kato
这是你项目设置中的Web API密钥。 - Long Rainbow
@user2399432 你可以使用https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents/createDocument来首先构建“请求正文”。它提供了交互式建议,以帮助构建有效的请求正文。 - wMaN

6

接受的答案对我有帮助,但我花了很长时间才弄清楚如何使用除stringValues之外的数据类型,因此我添加了这个答案,希望将来有人会发现它有用。

curl -X POST \
-H "Content-Type: application/json" \
-d' {
    "fields": {
        "Field1": {
            "arrayValue": {
                "values": [{
                    "mapValue": {
                        "fields": {
                            "key1": {
                                "stringValue": "val1"
                            },
                            "key2": {
                                "stringValue": "val2"
                            }
                        }

                    }
                }]
            }
        },
        "Field2": {
            "integerValue": <intValue>
        },
        "Field3": {
            "stringValue": "var3"
        }
    }
}'\"https://firestore.googleapis.com/v1beta1/projects/**PROJECT_ID**/databases/(default)/documents/**COLLECTION_ID**?&key=<YOUR WEB API KEY>"

参考此链接


1

示例字段值

var data = { "fields": { "productName":{"stringValue": dealname.toString()}, "companyname":{"stringValue": companyName.toString()}, "contact":{"stringValue": contact.toString()}, "email":{"stringValue": email.toString()}, "domain":{"stringValue": domain.toString()}, "createdate":{"stringValue": createdate.toString()}, "salesCode":{"stringValue": code.toString()}, "price":{"stringValue": amount.toString()}, "phone":{"stringValue": phone.toString()}, "orderId":{"stringValue": orderId.toString() } } };

更多信息请参见Firestore信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接