【发布时间】:2020-12-31 06:14:53
【问题描述】:
我想列出会话中等于某个 id 的所有元素。我是 Firebase 的新手,我正在尝试了解这种数据库。
【问题讨论】:
-
您使用的是实时数据库还是 Firestore?
标签: javascript firebase web firebase-realtime-database
我想列出会话中等于某个 id 的所有元素。我是 Firebase 的新手,我正在尝试了解这种数据库。
【问题讨论】:
标签: javascript firebase web firebase-realtime-database
Firebase 具有三个排序/过滤操作:
orderByKey() 直接子节点的键上的订单/过滤器,这意味着在您的 JSON 中的 6-8-2020、7-8-2020 上。orderByValue() 对直接子节点的简单值进行排序/过滤。由于您的子节点因此具有 JSON 对象,因此此操作不适用于您的数据结构。orderByChild(...) 对每个直接子节点下的命名属性的值进行排序/过滤。此运算符对您的用例没有帮助,因为您希望在 key 而不是值上进行排序/过滤。不幸的是,这意味着它不可能在您当前的数据结构中。 orderBy 操作都不会对您要查询的键进行排序/过滤。
您需要修改数据结构以允许用例,这在使用 NoSQL 数据库时很常见。在您的情况下,我将添加一个额外的数据结构,将推送 ID 映射回使用日期:
"keysToDates": {
"-MFytoo...3So": {
"6-8-2020": true,
"7-8-2020": true
},
"-MFyunx...wFs": {
"6-8-2020": true
}
}
现在有了这个额外的结构,您可以查找 ID 的日期,然后从那里查找系列和其他信息。后一种加载并不像你最初想象的那么慢,就像Firebase pipelines these requests across its WebSocket connection。
【讨论】: