Мой код:
(имя строки является общедоступным объектом в классе)
Код: Выделить всё
mDatabase.child("users").child(userId).get().addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (!task.isSuccessful()) {
Log.e("firebase", "Error getting data", task.getException());
}
else {
Log.d("firebase", String.valueOf(task.getResult().getValue()));
}
}});
Сначала я попробовал создать общую функцию для однократного получения данных, это выглядело так:
Код: Выделить всё
public String getQuestionnaireStringData(int charid, String data) {
DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("characters").child(String.valueOf(charid)).child(data).get().addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(Task task) {
if (!task.isSuccessful()) {
Log.e("lograt", "Error getting data ("+ data +")", task.getException());
//Error toast
}
else {
dataResS = String.valueOf(task.getResult().getValue());
}
}
});
return dataResS;
}
Я также попробовал получить полное значение после charaid и поставил результат для строки, а затем разделить строку и т. д. Но каждый раз происходит то же самое, за пределами onComplete, все так, как будто никогда не было установлено (null).
Ошибок не появляется. в журнале.
Кто-нибудь знает, чего мне не хватает? Заранее всем спасибо!
Подробнее здесь: https://stackoverflow.com/questions/782 ... data-issue
Мобильная версия