要在Android应用程序中实现Firestore的离线持久性和缓存功能,您可以遵循以下步骤:
implementation 'com.google.firebase:firebase-firestore:21.7.1'
FirebaseApp.initializeApp(this);
Firestore firestore = FirebaseFirestore.getInstance();
FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
.setPersistenceEnabled(true)
.build();
firestore.setFirestoreSettings(settings);
firestore.collection("users")
.whereEqualTo("age", 25)
.get(Source.CACHE)
.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
在上面的示例中,我们使用get()方法的Source参数来指定数据源为缓存。如果有匹配的缓存数据,它将立即返回,否则它将尝试从服务器获取数据。
这样,您就可以在Android应用程序中实现Firestore的离线持久性和缓存功能。请确保您的应用程序具有Internet权限以便在在线模式下访问Firestore数据。