我正在尝试从Android应用程序中的Firebase提取特定数据。 输入代码
DatabaseReference Ref = FirebaseDatabase.getInstance().getReference().child("Working").child(FoundID).child("l");
Ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
}
}
//
但是当使用firestore时,它是拒绝addValueEventListener 如何在Firestore中执行之前的代码而不是Firebase
答案 0 :(得分:1)
Firestore与实时数据库不同,您应在此处阅读文档:
https://firebase.google.com/docs/firestore/quickstart
但是与addValueEventListener
等效的是get()
从文档中
public Task<DocumentSnapshot> get ()
读取此DocumentReference引用的文档。
您可以检索某个集合中的所有文档,例如:
db.collection("Working")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());
}
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
要能够使用Firestore实时检索数据,请执行以下操作:
final DocumentReference docRef = db.collection("cities").document("SF");
docRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot snapshot,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w(TAG, "Listen failed.", e);
return;
}
if (snapshot != null && snapshot.exists()) {
Log.d(TAG, "Current data: " + snapshot.getData());
} else {
Log.d(TAG, "Current data: null");
}
}
});
更多信息在这里:
https://firebase.google.com/docs/firestore/query-data/listen