检查Document
本地是否存在的最佳方法是什么?
您是否应该始终disableNetwork()
按照文档所述使用?
这种方法的问题在于,每次使用时都必须重新激活网络,enableNetwork()
否则下一次呼叫将全部在本地进行。
有没有更有效的方法?
检查本地是否存在Firestore文档
从16.0.0 SDK版本更新开始,如果我们有兴趣检查文档是否存在,我们可以借助DocumentReference.get(Source source)方法或Query.get(Source source)方法检查本地是否存在Firestore文档。实际上是由于查询而来的。
默认情况下,
get()
尝试通过等待来自服务器的数据来在可能的情况下提供最新数据,但是如果您离线并且无法访问服务器,它可能会返回缓存的数据或失败。可以通过Source参数更改此行为。
因此,我们现在可以将其作为参数传递给DocumentReference或Query来源,以便我们可以强制仅从缓存中检索数据。
因此,您应该使用类似以下的内容:
val root = FirebaseFirestore.instance
val docIdRef = root.collection("CollectionName").document(docId)
docIdRef.get(Source.CACHE).addOnSuccessListener(/* ... */)
在这种情况下,我们强制仅从缓存中检索数据。如果只想从服务器获取数据,则应将用作参数传递给get()
方法Source.SERVER
。更多信息在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句