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