Recuperando dados:
No seu banco de dados, você está usando um ID aleatório gerado usando o push()
, portanto, se desejar recuperar os dados, faça o seguinte:
Usando o Firebase no aplicativo 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 em Javascript:
firebase.database().ref().child("users").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Aqui você tem o instantâneo (localização dos dados) e, em users
seguida, faz um loop dentro de todos os IDs aleatórios e recupera os nomes.
Recuperando dados para um usuário específico:
Agora, se você deseja recuperar informações apenas para um usuário específico, é necessário adicionar uma consulta:
Usando o Firebase no aplicativo Android:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
Query queries=ref.orderByChild("name").equalTo("Alex");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}
Usando Firebase com 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")
é como dizer, where name="Alex"
para recuperar os dados relacionados ao Alex.
Melhor maneira:
O melhor é usar a autenticação do Firebase, gerando um ID exclusivo para cada usuário e usá-lo em vez de um ID aleatório push()
. Dessa forma, você não precisa percorrer todos os usuários, pois possui o ID e pode acessá-lo facilmente.
Primeiro, o usuário precisa estar conectado, então você pode recuperar o ID exclusivo e anexar um ouvinte para recuperar os outros dados desse usuário:
Usando o Firebase com 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 com 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;
});