Recuperando datos:
En su base de datos, está utilizando una identificación aleatoria que se genera utilizando push()
, por lo tanto, si desea recuperar los datos, haga lo siguiente:
Usando Firebase en la aplicación de Android:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
String name=datas.child("name").getValue().toString();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Usando Firebase en Javascript:
firebase.database().ref().child("users").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Aquí tiene la instantánea (ubicación de los datos) y users
luego realiza un bucle dentro de todos los identificadores aleatorios y recupera los nombres.
Recuperación de datos para un usuario específico:
Ahora, si desea recuperar información solo para un usuario específico, debe agregar una consulta:
Usando Firebase en la aplicación de Android:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
Query queries=ref.orderByChild("name").equalTo("Alex");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}
Usando Firebase con Javascript
firebase.database().ref().child("users").orderByChild("name").equalTo("Alex").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Usar orderByChild("name").equalTo("Alex")
es como decir where name="Alex"
que recuperará los datos relacionados con Alex.
Mejor manera:
Lo mejor es usar Firebase Authentication, generando así una identificación única para cada usuario y usándola en lugar de una identificación aleatoria push()
, de esta manera no tiene que recorrer todos los usuarios ya que tiene la identificación y puede acceder fácilmente a ella.
Primero, el usuario debe iniciar sesión, luego puede recuperar la identificación única y adjuntar un oyente para recuperar los otros datos de ese usuario:
Usando Firebase con Android:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users");
String uid = FirebaseAuthentication.getInstance().getCurrentUser().getUid();
ref.child(uid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name=dataSnapshot.child("name").getValue().toString();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Usando Firebase con Javascript:
var user = firebase.auth().currentUser;
var uid=user.uid;
firebase.database().ref().child("users").child(uid).on('value', function (snapshot) {
var name=snapshot.val().name;
});