在快照侦听器中添加一个新文档时,Firestore文档读取成本

时间:2019-09-02 23:11:16

标签: swift firebase google-cloud-platform google-cloud-firestore

我有一个文档监听器,可以监听前25个与此相似的文档:

db.collection("cities").whereField("state", isEqualTo: "CA")
.limit(to: 25)
    .addSnapshotListener { querySnapshot, error in
        guard let documents = querySnapshot?.documents else {
            print("Error fetching documents: \(error!)")
            return
        }
        let cities = documents.map { $0["name"]! }
        print("Current cities in CA: \(cities)")
    }

我注意到,当添加与查询匹配的新文档时,侦听器将返回前25个文档(即使仅添加了一个新文档)。

每次向该侦听器添加一个新文档时,我都要为25次文档读取收取费用吗?还是从缓存中获得任何帮助(因为我使用的是快照侦听器),而缓存仅对添加的一个文档收费?

1 个答案:

答案 0 :(得分:1)

您只需要为添加的文档付费。只要添加了侦听器,就可以将属于先前结果集的所有文档缓存在内存中,如果有更改,则将其重新传送给侦听器。即使在删除侦听器之后,针对同一查询的新侦听器也可能会从磁盘缓存中提取结果,这也不会花费每个文档的读取费用。