Lấy dữ liệu:
Trong cơ sở dữ liệu của bạn, bạn đang sử dụng một id ngẫu nhiên được tạo bằng cách sử dụng push()
, do đó nếu bạn muốn truy xuất dữ liệu thì hãy làm như sau:
Sử dụng Firebase trong ứng dụng 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) {
}
});
Sử dụng Firebase trong Javascript:
firebase.database().ref().child("users").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Tại đây bạn có ảnh chụp nhanh (vị trí của dữ liệu) users
sau đó bạn lặp bên trong tất cả các id ngẫu nhiên và truy xuất tên.
Lấy dữ liệu cho một người dùng cụ thể:
Bây giờ nếu bạn chỉ muốn truy xuất thông tin cho một người dùng cụ thể, thì bạn cần thêm một truy vấn:
Sử dụng Firebase trong ứng dụng Android:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("users");
Query queries=ref.orderByChild("name").equalTo("Alex");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}
Sử dụng Firebase với Javascript
firebase.database().ref().child("users").orderByChild("name").equalTo("Alex").on('value', function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var name=childSnapshot.val().name;
});
});
Sử dụng orderByChild("name").equalTo("Alex")
giống như nói where name="Alex"
vậy nó sẽ lấy dữ liệu liên quan đến Alex.
Cách tốt nhất:
Điều tốt nhất là sử dụng Xác thực Firebase, do đó tạo một id duy nhất cho mỗi người dùng và sử dụng nó thay vì một id ngẫu nhiên push()
, theo cách này bạn không phải lặp qua tất cả người dùng vì bạn có id và có thể dễ dàng truy cập.
Đầu tiên, người dùng cần phải đăng nhập, sau đó bạn có thể truy xuất id duy nhất và đính kèm một trình nghe để lấy dữ liệu khác của người dùng đó:
Sử dụng Firebase với 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) {
}
});
Sử dụng Firebase với 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;
});