Извлечение данных:
В своей базе данных вы используете случайный идентификатор, который создается с помощью push()
, поэтому, если вы хотите получить данные, выполните следующие действия:
Использование Firebase в приложении для 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) {
}
});
Использование Firebase в Javascript:
firebase.database().ref().child("users").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Здесь у вас есть моментальный снимок (расположение данных), users
затем вы перебираете все случайные идентификаторы и извлекаете имена.
Получение данных для конкретного пользователя:
Теперь, если вы хотите получить информацию только для определенного пользователя, вам нужно добавить запрос:
Использование Firebase в приложении для Android:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
Query queries=ref.orderByChild("name").equalTo("Alex");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}
Использование Firebase с Javascript
firebase.database().ref().child("users").orderByChild("name").equalTo("Alex").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Использование orderByChild("name").equalTo("Alex")
- это все равно что сказать, where name="Alex"
что он получит данные, связанные с Алексом.
Лучший способ:
Лучше всего использовать Firebase Authentication, тем самым генерируя уникальный идентификатор для каждого пользователя и используя его вместо случайного идентификатора push()
, таким образом вам не нужно перебирать всех пользователей, поскольку у вас есть идентификатор и вы можете легко получить к нему доступ.
Во-первых, пользователь должен войти в систему, затем вы можете получить уникальный идентификатор и подключить слушателя для получения других данных этого пользователя:
Использование Firebase с 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) {
}
});
Использование Firebase с 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;
});