การดึงข้อมูล:
ในฐานข้อมูลของคุณคุณกำลังใช้ id สุ่มที่สร้างขึ้นโดยใช้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 จึงสร้าง id เฉพาะสำหรับผู้ใช้แต่ละคนและใช้แทน id แบบสุ่มpush()
วิธีนี้คุณไม่ต้องวนซ้ำผู้ใช้ทั้งหมดเนื่องจากคุณมี id และสามารถเข้าถึงได้ง่าย
ขั้นแรกผู้ใช้ต้องลงชื่อเข้าใช้จากนั้นคุณสามารถดึง ID เฉพาะและแนบ Listener เพื่อดึงข้อมูลอื่น ๆ ของผู้ใช้นั้น:
การใช้ 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;
});