Firebase indexOn警告动态值

时间:2017-02-28 10:42:28

标签: javascript firebase firebase-realtime-database firebase-security

以下是我的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?

1 个答案:

答案 0 :(得分:3)

由于对通配符的索引不是很好,您可以修改结构然后索引:

---readBy-+
          |
           294jjfouurjkfJDGLS+
                             |
                            isRead: true

现在您可以添加安全规则:

"readBy": {
  ".indexOn": "isRead"
}