Firebase查询下载整个数据库。为什么?
我尝试从实时数据库下载并仅显示特定数据。我有以下代码:Firebase查询下载整个数据库。为什么?,firebase,ionic-framework,firebase-realtime-database,ionic3,angularfire2,Firebase,Ionic Framework,Firebase Realtime Database,Ionic3,Angularfire2,我尝试从实时数据库下载并仅显示特定数据。我有以下代码: getUserPlatformIos() { this.dataRef = this.afDatabase.list('data/users', ref => ref.orderByChild('meta/platform').equalTo('ios')); this.data = this.dataRef.snapshotChanges().map(changes => { return
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数据库结构
Firebase规则
如果我以前查询过,为什么firebase会下载整个数据库?这会导致很长的加载时间和大量下载的数据….需要在查询位置定义索引。由于您在
数据/用户
上运行查询,因此需要在此处定义索引:
"users": {
".indexOn": "meta/platform"
}
这在用户
上定义了一个索引,该索引具有每个用户的元/平台
属性的值
请注意,应用程序的日志输出应该显示一条错误消息,其中正好包含此信息。我强烈建议在某些东西不能按预期的方式工作时检查日志输出。需要在查询位置定义索引。由于您在
数据/用户
上运行查询,因此需要在此处定义索引:
"users": {
".indexOn": "meta/platform"
}
这在用户
上定义了一个索引,该索引具有每个用户的元/平台
属性的值
请注意,应用程序的日志输出应该显示一条错误消息,其中正好包含此信息。我强烈建议您在某些内容无法按预期方式工作时检查日志输出。请将屏幕截图替换为实际规则,并将JSON替换为文本。您可以通过单击溢出菜单中的导出JSON链接轻松获取JSON(⠇) 当然。将JSON和规则作为文本让它们可以搜索,让我们可以轻松地使用它们来测试您的实际规则和数据,并在我们的答案中使用它们,这通常是一件好事。请将屏幕截图替换为实际规则和JSON作为文本。您可以通过单击页面中的导出JSON链接轻松获得JSONu(⠇) 当然。将JSON和规则作为文本让它们可以搜索,让我们可以轻松地使用它们来测试您的实际规则和数据,并在我们的答案中使用它们,这通常是一件好事。太好了!!确实有效!非常感谢!:)我在浏览器控制台中没有收到错误消息…太好了!!确实有效!非常感谢!)我在浏览器控制台中没有收到错误消息。。。