gpt4 book ai didi

java - 关于 Firestore 是否有一些标志我可以检查数据是否在线/离线数据?

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:13 25 4
gpt4 key购买 nike

read在 Android 上处于离线模式时,除非设备联机,否则 onComplete() 方法将永远不会返回,因此数据可以持久保存到 Firestore 的后端。

当我处于离线模式并执行此操作时 get() 我注意到它返回了我认为必须是本地数据的内容,因为我有 setPersistenceEnabled(true)

  query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {

}
});

我只是想问一下这是否正确?如果是这样,是否有一些标志我可以检查数据是在线/离线数据?

有时执行此 get() 它不会返回,只是永远卡在那里,这可能与我的设备在大量调试后变热有关。

最佳答案

与在 Firebase 实时数据库中启用离线持久性不同,您应该首先使用以下代码行:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

在 Cloud Firestore 中,对于 Android 和 iOS,默认启用离线持久性。所以,没有必要使用:setPersistenceEnabled(true)

当您离线并使用 get() 调用时,结果将来自您的应用正在使用的 Cloud Firestore 数据的缓存副本。

要检查数据是来自缓存还是来自 Firestore 服务器,您可以使用以下代码行:

String source = querySnapshot.getMetadata().isFromCache() ? "Local Cache" : "Firebase Server";

关于java - 关于 Firestore 是否有一些标志我可以检查数据是否在线/离线数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49068084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com