我尝试从实时数据库下载并仅显示特定数据。我有以下代码:
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不会下载整个数据库?这将导致非常长的加载时间和大量下载的数据。...
答案 0 :(得分:5)
索引需要在查询的位置定义。由于您是在data/users
上运行查询,因此您需要在其中定义索引:
"users": {
".indexOn": "meta/platform"
}
这在users
上定义了一个索引,该索引具有每个用户的meta/platform
属性的值。
请注意,您应用的日志输出应显示一条错误消息,其中包含此信息。我强烈建议您在无法正常工作的情况下检查日志输出。