Ответ 1
Вы смотрите на концепцию с неправильного угла.
При использовании ref.child("[email protected]").child("_email")
вы просто указываете на конкретное место в своей базе данных и ничего больше.
Если вы хотите получить данные в этом конкретном месте, рассмотрите эти два способа.
Сначала, если вы хотите получить данные только один раз, вы можете сделать следующее:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
DatabaseReference mostafa = ref.child("Users").child("[email protected]").child("_email");
mostafa.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String email = dataSnapshot.getValue(String.class);
//do what you want with the email
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
или, возможно, вы хотите получить значение в реальном времени и использовать его в то же время, когда значение базы данных будет изменено, все в одно и то же время, всякий раз, когда значение изменяется, вы используете это:
mostafa.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String email = dataSnapshot.getValue(String.class);
display.setText(email);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Обратите внимание на разницу между этими двумя методами. Сначала выполняется только одно время, а второе - для извлечения данных всякий раз, когда изменяется значение.
Просто имейте в виду, что коды, которые я опубликовал, являются просто шаблонами и, возможно, вам придется немного поиграть с ними.