子对象存在下的Firebase顺序
我有一个非常大的用户数据库,需要对其进行分页。结构如下子对象存在下的Firebase顺序,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我有一个非常大的用户数据库,需要对其进行分页。结构如下 users > -userId > logs > -logId > {type, timestamp, ...} 并非所有用户都有日志,因此根据数据订单文档,如果我按“日志”排序,这些用户应该首先出现() 使用orderByChild()时,包含指定子键的数据 订单如下: 对于指定的子键,具有空值的子项首先出现 因此,我尝试使用以下代码检索最后5个有日志的用户,但在云平台(2GB)上内存不足。我应该添加索引来辅助此
users > -userId > logs > -logId > {type, timestamp, ...}
并非所有用户都有日志,因此根据数据订单文档,如果我按“日志”排序,这些用户应该首先出现()
使用orderByChild()时,包含指定子键的数据
订单如下:
对于指定的子键,具有空值的子项首先出现
因此,我尝试使用以下代码检索最后5个有日志的用户,但在云平台(2GB)上内存不足。我应该添加索引来辅助此查询,还是我的语法不正确
admin.database().ref("users").orderByChild("logs").limitToLast(5).once("value", (snapshot) => {
有没有更好的方法来获取拥有日志的有限用户组?如有任何反馈,将不胜感激
我应该添加索引来辅助此查询,还是我的语法不正确
admin.database().ref("users").orderByChild("logs").limitToLast(5).once("value", (snapshot) => {
答案总是肯定的。如果安全规则中没有索引,服务器会将该位置的所有数据发送到客户端,然后客户端会对其进行排序和筛选
因此,对于您的查询,您的规则需要在用户
节点下的日志
上包含索引
我应该添加索引来辅助此查询,还是我的语法不正确
admin.database().ref("users").orderByChild("logs").limitToLast(5).once("value", (snapshot) => {
答案总是肯定的。如果安全规则中没有索引,服务器会将该位置的所有数据发送到客户端,然后客户端会对其进行排序和筛选
因此,对于您的查询,您的规则需要在
用户
节点下的日志
上包含索引。这很有意义。按照建议的“用户”添加以下固定性能和数据使用规则:{.indexOn:[“日志”]}。非常感谢。这是有道理的。按照建议的“用户”添加以下固定性能和数据使用规则:{.indexOn:[“日志”]}。非常感谢。