После удаления данных из моего Firestore Database
требуется некоторое время Android
app
, чтобы понять, что данные были удалены, и я предполагаю, что это happeing из-за автоматического кэша данных. Мое приложение не имеет ничего общего с автономным использованием, и я хотел бы отключить эту функцию...
Я добавил это в свой пользовательский Application Class
:
import android.app.Application;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.FirebaseFirestoreSettings;
public class ApplicationClass extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseFirestore db=FirebaseFirestore.getInstance();
FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
.setPersistenceEnabled(false)
.build();
db.setFirestoreSettings(settings);
}
}
Проблема возникает после отключения подключения к Интернету и повторного включения (пока приложение все еще работает, в фоновом режиме или нет) - Firestore module
, похоже, теряет соединение с сервером, и это делает противоположное чем предполагаемый - вместо того, чтобы прекратить брать данные из кеша, он берет данные только из кэша.
Например, отладка этого кода всегда будет показывать, что isFromCache
true
и documentSnapshot
пуст (даже если это на стороне server
- он не пуст):
usersRef.document(loggedEmail).collection("challenges_received").get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
boolean isFromCache=documentSnapshots.getMetadata().isFromCache();
if (!documentSnapshots.isEmpty()) {
}
}
});
Это нормальное поведение?
Есть ли другой способ отключить кеш данных в Cloud Firestore
?
EDIT:
Добавление: FirebaseFirestore.setLoggingEnabled(flase);
(вместо кода выше) в пользовательском Application Class
дает тот же результат.