Firebase Firestore REST请求-查询和筛选

Firebase Firestore REST请求-查询和筛选,firebase,google-cloud-firestore,request,postman,Firebase,Google Cloud Firestore,Request,Postman,我有一个firebase项目的firestore数据库。我想使用rest请求与postman一起过滤或查询数据。我正在使用“/databases/(default)/documents/”获取数据库中已知路径中的数据。以下是我的数据库结构示例: 用户>xxxxx>消息>YYYY>“已发送”:“真” 其中“用户”和“消息”是集合,“xxxxx”和“YYYY”是自动生成的文档id(xxxxx是自动生成的用户id) 我想做的是查找“xxxxx”的(用户),这些用户已>“发送”:“true”

我有一个firebase项目的firestore数据库。我想使用rest请求与postman一起过滤或查询数据。我正在使用“/databases/(default)/documents/”获取数据库中已知路径中的数据。以下是我的数据库结构示例:

  • 用户>xxxxx>消息>YYYY>“已发送”:“真”
其中“用户”和“消息”是集合,“xxxxx”和“YYYY”是自动生成的文档id(xxxxx是自动生成的用户id)

我想做的是查找“xxxxx”的(用户),这些用户已>“发送”:“true”<数据


如果我知道“xxxxx”和“yyyy”,我会成功,但我不知道它们,因为它们是自动生成的,在我的数据库中彼此不同,并且不知道如何操作。

您需要运行查询,如REST API文档中所述

由于要查询不同
用户
文档的所有
消息
子集合,因此需要在。方法是在中将
allsubstands
元素设置为
true

因此,在以下URL上发出POST HTTP请求就可以做到这一点:

  var URL = "https://firestore.googleapis.com/v1/projects/<your-project-id>/databases/(default)/documents:runQuery";

请注意,您需要向Firestore数据库添加单个字段索引,如下所示:



另外请注意,如果您的字段
sent
类型为
Boolean
(而不是问题中所示的
String
),则需要在JSON元素中使用
booleanValue
元素。

@ymeksur Hi,您有时间查看建议的答案吗?Hi@RenaudTarnec。这几天我很忙。是的,我看了你的答案,效果很好。非常感谢您的详细回答。嗨@ymeksur,很高兴我能帮助您!您可以接受答案,向其他读者表明它解决了您的问题,请参阅。谢谢
    "structuredQuery": {
        "from": [{
            "collectionId": "messages",
            "allDescendants": true
        }],

        "where": {
            "fieldFilter": {
                "field": {
                    "fieldPath": "sent"
                },
                "op": "EQUAL",
                "value": {
                    "stringValue": "true",
                }
            }
        }
    }