Firebase数据库StartAt规则

约瑟夫31

我正在尝试在我的Firebase数据库上进行查询

我当前数据库的结构如下

数据库图

查询如下(工作正常):

firebase.database().ref('/users/'+id).orderByValue().endAt(7000).once('value').then(......

为避免必须从节点下载所有数据并在客户端上处理查询,我必须创建规则。现在我有这个:

"users": {
     "$id": {
         ".indexOn": ".value"
     }
}

我的问题是:使用此规则,我的查询将仅下载必要的内容,或者我必须添加其他内容,例如“ .indexOn”:“。value> 7000”以提高效率?

弗兰克·范普菲伦

您需要在要执行索引的JSON级别上定义索引和查询。由于要查询用户的值,因此索引如下所示:

{
  "rules": {
    "users": {
       ".indexOn": ".value"
     }
  }
}

因此,这在上定义了一个索引/users,然后您可以在该索引上对其值的子节点进行排序/过滤。

然后,您可以使用以下查询:

firebase.database()
  .ref('/users')
  .orderByValue()
  .endAt(7000)
  .once('value')
  .then(function(results) {
    results.forEach(function(snapshot) {
      console.log(snapshot.key+": "+snapshot.val());
    });
  })

如果要确保此处没有读取多余的数据,可以做两件事

  1. 查看JavaScript控制台,当它缺少索引时,它将显式记录日志。
  2. 查看浏览器网络控制台中的“ Web套接字”选项卡,您可以在其中确切查看Firebase接收到的正在发送的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase数据库规则“ hasChildren”

来自分类Dev

Firebase实时数据库-规则

来自分类Dev

Firebase数据库规则专用节点

来自分类Dev

Firebase数据库规则:用户权限

来自分类Dev

Firebase数据库删除安全规则

来自分类Dev

特定用户的 Firebase 数据库规则

来自分类Dev

组共享数据的 Firebase 数据库规则

来自分类Dev

如何为Firebase数据库添加索引规则?

来自分类Dev

“捕获所有其他” Firebase数据库规则

来自分类Dev

数据库中具有属性的Firebase安全规则

来自分类Dev

Firebase /数据库-版本2安全规则?

来自分类Dev

Firebase实时数据库规则拒绝权限

来自分类Dev

Firebase Realtime数据库规则“未知变量'request'”。

来自分类Dev

用于查询的Firebase Realtime数据库安全规则

来自分类Dev

在Firebase Realtime数据库规则集中访问对象属性

来自分类Dev

Firebase数据库安全规则块发布

来自分类Dev

在Firebase数据库中使用多个验证规则

来自分类Dev

无法使用规则写入 Firebase 数据库

来自分类Dev

Firebase 数据库规则 $id 不起作用

来自分类Dev

使用 Firebase 数据库规则的用户 RemoteConfig

来自分类Dev

Firebase 数据库规则和permission_denied 错误

来自分类Dev

在 Firebase 数据库规则中将值作为键传递

来自分类Dev

在键名上创建 firebase 数据库规则

来自分类Dev

Firebase 数据库规则:如何使字段只读?

来自分类Dev

写入操作失败 - firebase 数据库规则

来自分类Dev

创建/更新/删除 Firebase 实时数据库规则

来自分类Dev

测试 Firebase -> 数据库 -> 规则中缺失的属性

来自分类Dev

使用 Firebase 规则防止空数据库路径

来自分类Dev

Firebase数据库规则-基于自定义声明的规则

Related 相关文章

热门标签

归档