Я перепробовал все способы ссылки на дочерний элемент (имя пользователя) в UID, сгенерированном для отображения строкового значения в текстовом представлении из базы данных Firebase, но он не будет отображаться
База данных:
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child("uid").child("username");
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
String username = Objects.requireNonNull(dataSnapshot.getValue()).toString();
mName.setText(("username" + username ));
} else {
mName.setText(null);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
TextView:
это всегда относится к остальной части, что я делаю не так?
Дочерний объект, на который вы ссылаетесь в своем коде, не существует в базе данных, поэтому он всегда переходит к другой части.
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child("uid").child("username");
В вашей базе данных у вас нет дочернего uid
именем uid
, под узлом Users
вас разные идентификаторы пользователей, поэтому вам необходимо выполнить следующее:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userId = user.getUid();
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users").child(userId).child("username");
Это позволит получить идентификатор текущего пользователя для входа в систему, и вы сможете получить имя Username
.