我有一个名为“ Skate”的收藏集,是否可以从她的文档中获取所有数据?例如照片中两个公园的数据
fireStore.collection("Parks").document("PracasGravatai").collection("Skate").document().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
if(documentSnapshot.exists()) {
String endereco = documentSnapshot.getString("Endereco");
String nome = documentSnapshot.getString("Nome");
Log.i("LOG: ",endereco);
Log.i("LOG",nome);
textView.setText("Nome: "+nome+ "Endereço: "+endereco);
答案 0 :(得分:1)
一个集合包含文档。现在,您调用document()
,这意味着您正在创建对新的空文档的引用。因此,get()
之后的调用然后将快照返回到不存在的文档中。
要加载特定文档,您需要知道其ID。完成后,可以通过在get
上调用DocumentReference
来加载它:
fireStore.collection("Parks").document("PracasGravatai")
.collection("Skate").document("theIdOfTheDocument").get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
如果要为Skate
加载PracasGravatai
集合中的所有文档,可以通过在集合上调用get
来实现:
fireStore.collection("Parks").document("PracasGravatai")
.collection("Skate").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());
}
}
});
这两种情况都在getting data from Firestore的Firebase文档中进行了介绍。