每次附加侦听器时,Firestore客户端都必须连接到服务器,以检查该侦听器观察到的文档是否已被修改。由于服务器必须为此阅读文档,因此您确实需要为所观察的每个文档的阅读文档付费。
如果您不想这样做,可以考虑通过在source options中指定它来告诉客户端从缓存中读取。
DocumentReference docRef = db.collection("cities").document("SF");
// Source can be CACHE, SERVER, or DEFAULT.
Source source = Source.CACHE;
// Get the document, forcing the SDK to use the offline cache
docRef.get(source).addOnCompleteListener(new
OnCompleteListener
由于此操作是从本地缓存中读取的,因此您无需为服务器上的读取操作付费,但这当然意味着您可能在提供过时的数据。