Daten abrufen:
In Ihrer Datenbank verwenden Sie eine zufällige ID, die mit der generiert push()
wird. Wenn Sie also die Daten abrufen möchten, gehen Sie wie folgt vor:
Verwenden von Firebase in der Android App:
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) {
}
});
Verwenden von Firebase in Javascript:
firebase.database().ref().child("users").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Hier haben Sie den Schnappschuss (Speicherort der Daten), users
dann durchlaufen Sie alle zufälligen IDs und rufen die Namen ab.
Abrufen von Daten für einen bestimmten Benutzer:
Wenn Sie nun Informationen nur für einen bestimmten Benutzer abrufen möchten, müssen Sie eine Abfrage hinzufügen:
Verwenden von Firebase in der Android App:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
Query queries=ref.orderByChild("name").equalTo("Alex");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}
Verwenden von Firebase mit Javascript
firebase.database().ref().child("users").orderByChild("name").equalTo("Alex").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Das Verwenden orderByChild("name").equalTo("Alex")
ist wie gesagt where name="Alex"
, es werden die Daten abgerufen, die sich auf Alex beziehen.
Bester Weg:
Das Beste ist, die Firebase-Authentifizierung zu verwenden, um für jeden Benutzer eine eindeutige ID zu generieren und diese anstelle einer zufälligen ID zu verwenden push()
. Auf diese Weise müssen Sie nicht alle Benutzer durchlaufen, da Sie über die ID verfügen und problemlos darauf zugreifen können.
Zuerst muss der Benutzer angemeldet sein, dann können Sie die eindeutige ID abrufen und einen Listener anhängen, um die anderen Daten dieses Benutzers abzurufen:
Verwenden von Firebase mit 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) {
}
});
Verwenden von Firebase mit 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;
});