Нет случаев, когда вы можете использовать значение, полученное за пределами другого, о котором я уже упоминал в своем ответе. Вы не можете вернуть то, что еще не загружено. Ваше решение не является легким, не будет работать вообще. Попробуйте использовать записи журнала, и вы поймете, что я имею в виду.
я нет большого опыта работы с Java. Я не уверен, что этот вопрос глуп, но мне нужно получить имя пользователя из базы данных Firebase в реальном времени и вернуть это имя в результате этого метода. Итак, я выяснил, как получить это значение, но я не понимаю, как вернуть его как результат этого метода. Какой лучший способ сделать это?
private String getUserName(String uid) {
databaseReference.child(String.format("users/%s/name", uid))
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// How to return this value?
dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
}