好的,所以我的实时数据库中的数据结构如下所示:
当我运行这样的查询时:
database.ref('access_lists').orderByChild('95577307/read').equalTo(true)
我从查询中什么也没收到。据我所知,这应该行得通,但是我有点茫然为什么不行。
答案 0 :(得分:1)
在另一个键中有一个键,这就是为什么没有任何价值的原因,如果数字95577307, ...
有目的但不需要成为一个值,则可以通过更改结构方式将其用作键数据:
access_lists: {
95577307: {
name: 'FelixJar1'
read: true
write: true
}
}
这还将帮助您对具有读/写equalTo(true)的用户进行排序/过滤。 https://firebase.google.com/docs/database/web/structure-data#flatten_data_structures
========================================
这是Firebase的工作方式:
"posts": {
"ts-functions": {
"metrics": { <===== it's the same key name
"views" : 1200000,
"likes" : 251000,
"shares": 1200,
},
"title" : "Why you should use TypeScript for writing Cloud Functions",
"author": "Doug",
},
"android-arch-3": {
"metrics": { <===== it's the same key name
"views" : 900000,
"likes" : 117000,
"shares": 144,
},
"title" : "Using Android Architecture Components with Firebase Realtime Database (Part 3)",
"author": "Doug",
}
},
由于它们具有键名metrics
,因此可以在firebase规则中为其编入索引,还可以过滤/排序/排序值,例如:metrics/views
另一方面,您拥有995055869, 950336178....