如何在 firebase REST API 中使用 equalTo 过滤结果

问题描述 投票:0回答:1

我正在使用 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 的文档?

firebase firebase-realtime-database
1个回答
0
投票

根据有关使用实时数据库 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

© www.soinside.com 2019 - 2024. All rights reserved.