使用Rest API调用(HTTP-GET)从Google Firestore获取特定数据

时间:2019-04-10 11:15:23

标签: rest firebase api google-api google-cloud-firestore

问题

我想从Google Firestore检索特定数据。

只能获取所有“字段”数据。但是字段中没有特定数据

GET请求示例:

https://firestore.googleapis.com/v1beta1/projects/edubox-49528/databases/(default)/documents/nodes/EduBox-1234567?key=[My_API_KEY]&fields=fields

如您所见,可以获取对象“字段”中的所有项目。但是无法进一步详细了解以获得更具体的数据(测试,消息,nodeID等)

试用版

我已经尝试过:

  • fields = fields / test

  • fields = fields.test

  • fields = fields(test)

  • fields = fields / test / integerValue

  • ...

预期结果

我想获取特定数据,例如“字段”中对象的字符串/整数值。

此示例应返回带有30的integerValue

https://firestore.googleapis.com/v1beta1/projects/edubox-49528/databases/(default)/documents/nodes/EduBox-1234567?key=[My_API_KEY]&fields=fields/test

此示例应返回30

https://firestore.googleapis.com/v1beta1/projects/edubox-49528/databases/(default)/documents/nodes/EduBox-1234567?key=[My_API_KEY]&fields=fields/test/integerValue

2 个答案:

答案 0 :(得分:0)

解决方案

浏览网络时,我遇到了 Google Api Explorer

https://developers.google.com/apis-explorer/#search/firestore/firestore/v1beta1/

在尝试一些可能性时,我遇到了这个问题:

https://firestore.googleapis.com/v1/projects/edubox-49528/databases/(default)/documents/nodes/EduBox-1234567?mask.fieldPaths=nodeID&fields=fields&key={YOUR_API_KEY}

这给了我正确的信息

但我仍然需要此答案的更详细形式,例​​如仅'EduBox-1234567'

答案 1 :(得分:0)

检索特定字段的方法是使用mask.fieldPaths。例如下面的GET方法:

https://firestore.googleapis.com/v1beta1/projects/edubox-49528/databases/(default)/documents/nodes/EduBox-1234567?key=[My_API_KEY]&fields=fields&mask.fieldPaths=nodeID

要返回:

{
  "fields": {
    "nodeID": {
      "stringValue": "EduBox-1234567"
    }
 }

文档参考herehere