以下是我的Firebase数据库结构和我的查询。
https://jsfiddle.net/1v8fmb8b/
我对这个结构的疑问是:
var messageRef = databaseRef.child(`/messagesThread/-KdzCvVW5icW7ZuSIAxV`);
messageRef.orderByChild(`/readBy/{userId}`).equalTo(false).on("child_added", (snapshots)=>{
console.log("Unread messages = " + snapshots.numChildren());
});
但上面的查询给我警告
FIREBASE WARNING: Using an unspecified index. Consider adding ".indexOn": "readBy/{userId}".
那么如何使用动态{userId}
添加此indexOn?
答案 0 :(得分:3)
由于对通配符的索引不是很好,您可以修改结构然后索引:
---readBy-+
|
294jjfouurjkfJDGLS+
|
isRead: true
现在您可以添加安全规则:
"readBy": {
".indexOn": "isRead"
}