Я начинаю изучать Cloud Firestore с использованием Firebase SDK на Android, и я столкнулся с проблемой, когда я получаю данные из базы данных Firestore через OnCompleteListener, а затем пытаюсь сохранить их как переменную , Проблема заключается в том, что после завершения OnCompleteListener и перехода моего Android-приложения к следующей строке кода данные в переменной сбрасываются и не сохраняются.
У меня есть коллекция пользователей, и я пытаюсь получить спорт пользователя для сезона:
db.collection("users").document(mAuth.getCurrentUser().getUid()).collection("seasons").document(seasonName)
.get()
.addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null && document.exists() && document.getData() != null) {
sport = String.valueOf(document.getData().get("sport"));
//sport is set to the value
}
}
}
});
//Now sport is null
Спорт устанавливается на значение в слушателе, но затем возвращается к нулю после завершения слушателя.
Итак, мой вопрос: как я могу сохранить переменную навсегда, чтобы она не возвращалась к нулю? Есть ли способ получить данные без прослушивателя, чтобы у меня не было этой проблемы, или есть другое решение?
Заранее спасибо!