Firebase 如何获取id包含特定子字符串的所有元素?
我正在与firebase实时数据库建立聊天 假设用户1有uid1,用户2有uid2,他们的聊天ID将是uid1_uid2(订购asc)。 因此,数据库chat/如下所示:Firebase 如何获取id包含特定子字符串的所有元素?,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我正在与firebase实时数据库建立聊天 假设用户1有uid1,用户2有uid2,他们的聊天ID将是uid1_uid2(订购asc)。 因此,数据库chat/如下所示: chat { uid1_uid2: [message, message...], uid4_uid2:[message, message...], uid5_uid1:[message, message...], uid11_uid8:[message, message...] } Firebase规则如下,
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 => {
})
这是不可能的。实时数据库没有子字符串查询。最好是在值中查找前缀字符串
谢谢!databaseChat.orderByKey().endAt(uid1+“\uf8ff”).on()的工作方式与我预期的一样。它好像工作得很好