Pobieranie danych:
W swojej bazie danych korzystasz z losowego identyfikatora, który jest generowany za pomocą narzędzia push()
, dlatego jeśli chcesz odzyskać dane, wykonaj następujące czynności:
Korzystanie z Firebase w aplikacji na Androida:
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) {
}
});
Korzystanie z Firebase w JavaScript:
firebase.database().ref().child("users").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Tutaj masz migawkę (lokalizację danych), users
a następnie pętlę wewnątrz wszystkich losowych identyfikatorów i odzyskujesz nazwy.
Pobieranie danych dla konkretnego użytkownika:
Teraz, jeśli chcesz pobrać informacje tylko dla określonego użytkownika, musisz dodać zapytanie:
Korzystanie z Firebase w aplikacji na Androida:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
Query queries=ref.orderByChild("name").equalTo("Alex");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}
Korzystanie z Firebase z JavaScriptem
firebase.database().ref().child("users").orderByChild("name").equalTo("Alex").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Używanie orderByChild("name").equalTo("Alex")
jest jak mówienie where name="Alex"
, że pobierze dane związane z Alexem.
Najlepszym sposobem:
Najlepszą rzeczą jest użycie uwierzytelniania Firebase, a tym samym wygenerowanie unikalnego identyfikatora dla każdego użytkownika i użycie go zamiast losowego identyfikatora push()
, w ten sposób nie musisz przechodzić przez wszystkich użytkowników, ponieważ masz identyfikator i masz do niego łatwy dostęp.
Najpierw użytkownik musi być zalogowany, a następnie można pobrać unikalny identyfikator i dołączyć odbiornik, aby pobrać inne dane tego użytkownika:
Korzystanie z Firebase z Androidem:
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) {
}
});
Korzystanie z Firebase z JavaScriptem:
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;
});