如何获取其ID包含特定子字符串的所有元素?

时间:2019-08-09 16:58:52

标签: firebase firebase-realtime-database

我正在与Firebase实时数据库建立聊天。

假设用户1具有uid1,用户2具有uid2,则他们的chatId将为uid1_uid2(以asc排序)。 因此数据库chat /如下所示:

chat {
  uid1_uid2: [message, message...],
  uid4_uid2:[message, message...],
  uid5_uid1:[message, message...],
  uid11_uid8:[message, message...]
}

以下Firebase规则仅允许对话者访问对话:

   "chat": {
          "$chatId": {
            ".write": "$chatId.contains(auth.uid)",
            ".read": "$chatId.contains(auth.uid)"
          }
          }

我想获取在chatId中具有uid1的元素。所以预期的回报是

{
  uid1_uid2: [message, message...],
  uid5_uid1:[message, message...]
}

是否可以获取ID包含特定子字符串的元素?像...

databaseChat.child("contains uid1").on("value", snapshot => {

})

1 个答案:

答案 0 :(得分:1)

这是不可能的。实时数据库没有子字符串查询。最好的办法是在值中找到前缀字符串。

How to query firebase keys with a substring