我正在使用 firebase 实时数据库 Rest api 将更改流式传输到 messages.json。每条消息都有这样的结构。
{
"sender": "senderID",
"recipient": "recipientID",
"message": {
"event": "event",
"info": "info"
},
"time": "datetime"
}
每条消息都是使用帖子添加的,因此每条消息都有一个唯一的 ID,例如
-Nl9oB6Wwp5B1FHqQH1I
。
我拨打
https://PROJECTID.firebaseio.com/messages.json?auth=IDTOKEN
来获取所有消息。
我想使用 equalTo 来过滤收件人,但我找不到任何示例来过滤子字段。
https://PROJECTID.firebaseio.com/messages.json?auth=IDTOKEN&equalTo=???
如何使用 equalTo 过滤并仅返回具有特定收件人 ID 的文档?
根据有关使用实时数据库 REST API 排序和过滤数据的 Firebase 文档,您需要指定
orderBy
和 equalTo
参数。
我在 https://stackoverflow.firebaseio.com/77631409.json 上复制了您的数据结构:
{
"key1" : {
"message" : {
"event" : "event",
"info" : "info"
},
"recipient" : "recipientID",
"sender" : "senderID",
"time" : "datetime"
},
"key2" : {
"message" : {
"event" : "event",
"info" : "info"
},
"recipient" : "otherRecipientID",
"sender" : "senderID",
"time" : "datetime"
},
"key3" : {
"message" : {
"event" : "event",
"info" : "info"
},
"recipient" : "recipientID",
"sender" : "senderID",
"time" : "datetime"
}
}
现在我可以使用以下方法过滤
recipient
属性 recipientID
: https://stackoverflow.firebaseio.com/77631409.json?orderBy=%22recipient%22&equalTo=%22recipientID%22
这会返回
key1
和 key3
,但不会返回 key2
,因为它的 recipient
值为 otherRecipientID
。