我第一次用Firebase做实验,我想澄清一下Firebase的本地存储部分是如何工作的。
在我的测试应用程序中,我有一个"事件"数据库,每个文档都有以下结构:
{
"ref": String,
"message": {
type: String,
content: String
}
}
ref
包含对环境ID的引用,我使用以下代码仅显示与ref
匹配的events
(使用Angularfire)
$scope.events = $firebaseArray(ref.orderByChild('ref').equalTo($scope.env.environment._id));
我的问题是这个: Firebase/Angularfire下载整个"事件"数据库,然后在本地过滤它,还是它发送一个过滤请求到Firebase服务器?如果不是后者,当我有超过一百万个events
时会发生什么?
Firebase查询服务器上的过滤器。所以:
ref.orderByChild('ref').equalTo($scope.env.environment._id)
整个指令被发送到服务器并在那里执行。只有符合条件的子节点才会同步到客户端。