Я пытаюсь получить пользовательское имя пользователя, которое пользователь в моем приложении устанавливает для себя из моей базы данных Firebase.У меня есть некоторый код, который работает нормально, но я не знаю точно, как установить мой TextView
равным для получения данных, которые получает код.
Итак, вот метод, который идети получает имя пользователя из моей базы данных Firebase.
public void getUser(final MyCallback callback) {
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.child("Users").child(uid).child("userName").getValue(User.class);
if (null!=callback) callback.onSuccess(user);
}
@Override
public void onCancelled(DatabaseError databaseError) {
//Log.d(TAG, "onCancelled: Error: " + databaseError.getMessage());
}
});
}
И затем у меня есть интерфейс, который имеет дело с обратным вызовом
public interface MyCallback{
void onSuccess(User user);
}
И затем, наконец, я вызываю getUser()
void, где яхочу, чтобы имя пользователя отображалось с помощью этого кода.
final TextView navuserName = findViewById(R.id.navUsername);
getUser(new MyCallback() {
@Override public void onSuccess(User u) {
navuserName.setText("hello");
}
});
И где navuserName.setText("hello");
, я хочу, чтобы отображалось имя пользователя.Но я не знаю, что поставить между скобками, чтобы получить String
, который извлекает пустота getUser()
.
Вот так настроена моя база данных
{"BP07KgV4yHa0bqpt740kuFzJQGI2" : {
"email" : "sampleEmail@gmail.com",
"userName" : "testUsername"