Я - ладья ie Android разработчик и учусь ежедневно И теперь у меня возникла проблема, которая беспокоит меня уже неделю.
В моем приложении я использую firebase firestore для загрузки данных ( в основном изображения и текстовые просмотры ). И это работает нормально, но теперь я обнаружил проблему в своем приложении, когда пользователь открывает приложение, когда данные, извлекаемые из магазина, появляются снова и снова, даже если данные совпадают. Это увеличивает мои операции чтения в firebase, также требуется время, чтобы загрузить данные в их поля. Итак, чтобы дать быстрый ответ пользователю, я хочу загрузить данные локально.
Итак, я хочу знать, как я могу это сделать. Как я могу сохранить данные из хранилища и загрузить их из локального хранилища, что делает их быстрыми и легкими.
Объяснение: Я попытался загрузить кэш, и он работал хорошо, но когда пользователь очищает данные приложения и снова открывает приложение тогда данные не загружаются с сервера, как это происходит раньше. Итак, есть ли способ проверить, не загружен ли кеш с сервера, загружен ли кеш из кеша.
Пример кода:
Source source = Source.CACHE;
if (user != null){
user_id = user.getUid();
DocumentReference reference = FirebaseFirestore.getInstance().collection("Users").document(user_id);
reference.get(source).addOnCompleteListener(task -> {
if (task.isSuccessful()){
DocumentSnapshot snapshot = task.getResult();
if (snapshot != null) {
if (snapshot.exists()){
name = String.valueOf(snapshot.get("Name:"));
editName.setText(name);
email = String.valueOf(snapshot.get("Email:"));
editEmail.setText(email);
mobile = String.valueOf(snapshot.get("Phone:"));
editMobile.setText(mobile);
dob = String.valueOf(snapshot.get("Date of Birth:"));
editDOB.setText(dob);
}else {
editName.setText(user.getDisplayName());
editEmail.setText(user.getEmail());
editMobile.setText(user.getPhoneNumber());
}
}
}
});
В приведенном выше код, когда я перехожу от родительского действия к этому занятию, сначала текстовые поля редактирования пусты и через 3 секунды они получают свои значения. но когда я использовал Source.CACHE , он быстро загружается, но когда я удаляю кеш или вход в систему с другой учетной записи, появляется тот же кеш.
Итак, как я могу быстро загрузить данные.