我的Firestore仍在从缓存中检索文档,即使我已明确指示不要这样做:
class MainActivity : AppCompatActivity() {
val db = FirebaseFirestore.getInstance()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val dbSettings = FirebaseFirestoreSettings.Builder().setPersistenceEnabled(false).build()
db.firestoreSettings = dbSettings
以上是我在启动器中设置Firestore设置的活动。
在我的片段中,我执行GeoFirestore GeoQuery
:
GeoFirestore GeoQuery
这是它记录的内容:
class MapFragment : Fragment() {
val instances = FirebaseFirestore.getInstance().collection("instances")
val geoFirestore = GeoFirestore(instances)
lateinit var nearbyDocs: GeoQuery
private fun searchNearby(){
nearbyDocs = geoFirestore.queryAtLocation(currentLocation, 1.0)
nearbyDocs.addGeoQueryDataEventListener(object : GeoQueryDataEventListener {
override fun onDocumentEntered(documentSnapshot: DocumentSnapshot, location: GeoPoint) {
Log.d(TAG, "onDocumentEntered: user1: ${documentSnapshot.getString("user1")?.substring(0, 3)} | docId: ${documentSnapshot.id.substring(0, 5)} | fromCache: ${documentSnapshot.metadata.isFromCache}")
Log.d(TAG, "isPersistanceEnabled2: ${db.firestoreSettings.isPersistenceEnabled}")
}
}
这没有意义-即使我的持久性已关闭,我仍在接收缓存的文档。
知道是什么问题吗?
Edit:我曾尝试清除缓存,但未能解决问题。
您现在可以选择是仅从服务器还是仅从缓存中获取数据,例如(仅用于服务器的示例):
onDocumentEntered: user1: 0X6 | docId: lPLFf | fromCache: true
isPersistanceEnabled2: false
仅用于缓存,只需将上面的代码更改为Source.CACHE。
默认情况下,这两种方法仍然尝试使用服务器并返回到缓存。