Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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_Ionic Framework_Firebase Realtime Database_Ionic3_Angularfire2 - Fatal编程技术网

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和规则作为文本让它们可以搜索,让我们可以轻松地使用它们来测试您的实际规则和数据,并在我们的答案中使用它们,这通常是一件好事。太好了!!确实有效!非常感谢!:)我在浏览器控制台中没有收到错误消息…太好了!!确实有效!非常感谢!)我在浏览器控制台中没有收到错误消息。。。