yme*_*sur 0 request firebase postman google-cloud-firestore
我在 firebase 项目上有一个 firestore 数据库。我想使用邮递员进行过滤或查询数据的休息请求。我正在使用“ https://firestore.googleapis.com/v1/projects/ /databases/(default)/documents/ ”来获取数据库中已知路径中的数据。这是我的数据库结构示例:
其中“users”和“messages”是集合,“xxxxx”和“yyyyy”是自动生成的文档ID(xxxxx是自动生成的用户ID)
我想要做的是找到 >"sent":"true"< 数据的“xxxxx”(用户)。
如果我知道“xxxxx”和“yyyyy”,我就成功了,但我不知道它们,因为它们是自动生成的,并且在我的数据库中彼此不同,并且不知道该怎么做。
你需要运行一个查询,作为解释这里的REST API的文档。
既然你要查询所有的messages不同的子集user的文档,则需要“模拟”一个收集小组查询您的StructuredQuery。这样做的方法是将allDescendants元素设置true为CollectionSelector.
因此,在以下 URL 上发出 POST HTTP 请求即可解决问题:
var URL = "https://firestore.googleapis.com/v1/projects/<your-project-id>/databases/(default)/documents:runQuery";
Run Code Online (Sandbox Code Playgroud)
POST 请求的正文应包含:
"structuredQuery": {
"from": [{
"collectionId": "messages",
"allDescendants": true
}],
"where": {
"fieldFilter": {
"field": {
"fieldPath": "sent"
},
"op": "EQUAL",
"value": {
"stringValue": "true",
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要向 Firestore 数据库添加单个字段索引,如下所示:
另请注意,如果您的字段sent属于类型Boolean(而不是String您的问题中所示),则您需要booleanValue在ValueJSON 元素中使用一个元素。