firebase - Firebase 查询下载整个数据库。为什么?
问题描述
我尝试从实时数据库下载并仅显示特定数据。我有以下代码:
getUserPlatformIos() {
this.dataRef = this.afDatabase.list('data/users', ref => ref.orderByChild('meta/platform').equalTo('ios'));
this.data = this.dataRef.snapshotChanges().map(changes => {
return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});
return this.data;
}
如果我之前查询,为什么firebase会下载整个数据库?这会导致很长的加载时间和大量的下载数据....
解决方案
索引需要在您查询的地方定义。由于您在 上运行查询data/users
,因此您需要在此处定义索引:
"users": {
".indexOn": "meta/platform"
}
这定义了一个关于 的索引users
,它具有meta/platform
每个用户的属性值。
请注意,您的应用程序的日志输出应显示包含此信息的错误消息。我强烈建议在某些事情没有按照您期望的方式工作时检查日志输出。
推荐阅读
- android - chrome 检查器,远程调试在我的移动应用程序上不再正常工作
- r - Why can't I fit a curve to this plot?
- python - 是否可以使用环境变量覆盖 uwsgi ini 文件
- android - android volley 给客户端错误代码 400
- javascript - 使用 oncontextmenu 和 js/jquery 左键单击上下文菜单
- ld - 与 GCC 链接未检测到 -fPIC 标志
- css - 在 WordPress 父主题中覆盖 !important
- keycloak - 如何激活keycloak的REST API?
- python - Python 脚本无法访问某些环境变量
- php - PhpStorm 自动完成 STD 对象不起作用