Firebase 查询下载整个数据库。为什么?

Firebase query download the whole database. Why?

我尝试从实时数据库下载并仅显示特定数据。我有以下代码:

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会下载整个数据库?这会导致很长的加载时间和大量的下载数据....

需要在查询的地方定义索引。由于您 运行 对 data/users 的查询,这就是您需要定义索引的地方:

"users": {
  ".indexOn": "meta/platform"
}

这在 users 上定义了一个索引,它具有每个用户的 meta/platform 属性 的值。

请注意,您的应用程序的日志输出应该显示一条错误消息,其中包含这些信息。我强烈建议在某些内容无法按您预期的方式工作时检查日志输出。