Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子对象存在下的Firebase顺序_Firebase_Firebase Realtime Database - Fatal编程技术网

子对象存在下的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:[“日志”]}。非常感谢。