Exo*_*Kid 3 java android firebase google-cloud-firestore
我读的时候在Android在离线模式下的onComplete()方法永远不会返回,除非该设备在线这样的数据可以被保存到在公司的FireStore的backen.
当我处于离线模式并执行此操作时,get()我注意到它返回时我认为必须是本地数据,因为我有setPersistenceEnabled(true)
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
}
});
Run Code Online (Sandbox Code Playgroud)
我只是要问这是否正确?如果是这样,我可以检查数据是否为在线/离线数据?
有时做这get()件事它不会永远挂在那里,也许这与我的设备在经过大量调试后变暖有关.
与Firebase实时数据库中的启用脱机持久性不同,您应首先使用以下代码行:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)
在Cloud Firestore中,对于Android和iOS,默认情况下启用脱机持久性.所以,没有必要使用:setPersistenceEnabled(true).
当您离线并且正在使用get()呼叫时,结果将来自您的应用正在使用的Cloud Firestore数据的缓存副本.
要检查数据是来自缓存还是来自Firestore服务器,您可以使用以下代码行:
String source = querySnapshot.getMetadata().isFromCache() ? "Local Cache" : "Firebase Server";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |