#android
#Android
Вопрос:
я хочу получить только одни данные из firebase. приложил много усилий, но не смог добиться успеха структура данных моей firebase выглядит следующим образом
и пытается сделать что-то подобное в моем коде
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String email = dataSnapshot.getValue(String.class);
//do what you want with the email
setDisplayName.setText(email);
}
@Override
public void onCancelled(DatabaseError databaseError) {
setDisplayName.setText("data not get" databaseError );
}
});
Ответ №1:
Если вы хотите получать только электронное письмо, вы можете сделать что-то вроде этого :
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String email = dataSnapshot.child("email").getValue().toString();
//do what you want with the email
setDisplayName.setText(email);
}
@Override
public void onCancelled(DatabaseError databaseError) {
setDisplayName.setText("data not get" databaseError );
}
});
Если вы не хотите загружать другие данные, вы можете напрямую запросить электронное письмо следующим образом :
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("users").child("userID").child("email");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String email = dataSnapshot.getValue().toString();
//do what you want with the email
setDisplayName.setText(email);
}
@Override
public void onCancelled(DatabaseError databaseError) {
setDisplayName.setText("data not get" databaseError );
}
});