通过Firebase的新Firestore,我发现我对Observables知之甚少 .
我的问题如下:
我用db.collection('room')获得了一些数据 .
-
如果我不通过订阅收听observable,我会获取文档吗? (我认同) .
-
对于我的收藏“房间”的每次更改,它是否被Firestore视为“新文件阅读”?
-
如果我的应用程序中有重复的Observables返回db.collection('room'),我是否会对Firestore数据库进行X调用或只调用一次?
谢谢!
1 回答
当你调用
var ref = db.collection('room')
时,ref
实际上不是一个可观察的,它是对'room'
集合的引用 . 创建此引用不会执行任何数据读取(来自网络或磁盘) .当您调用
ref.get()
或ref.onSnapshot()
时,您将从服务器获取文档 .如果您正在侦听整个集合(没有
where()
或.orderBy()
子句)并且您有一个活动的onSnapshot()
侦听器,那么是,每次在集合中添加,更改或删除新文档时,都将向您收取文档读取操作的费用 .如果您在两个位置收听相同的Cloud Firestore数据,则只能对服务器进行一次调用,并为一次读取操作付费 . 将多个侦听器附加到一个引用没有成本/性能损失 .