【问题标题】:How to get all child values from firebase realtime database and store it in an array list如何从firebase实时数据库中获取所有子值并将其存储在数组列表中
【发布时间】:2019-12-05 09:05:40
【问题描述】:
我熟悉 firestore,但不确定如何从实时数据库中获取值。这是我下面的数据库
data base image
如您所见,我有 UID,在该 UID 下存储了多个文档引用。我是怎么做的:
firebaseDatabase.getReference(firebaseAuth.getCurrentUser().getUid()).push().setValue(documentReference.getPath());
我想获取 UID 下的整个文档引用并将其存储在数组列表中,或者只是遍历每个文档引用。谢谢
【问题讨论】:
标签:
java
android
firebase
firebase-realtime-database
google-cloud-firestore
【解决方案1】:
试试下面。
DatabaseReference mDatabaseRef = FirebaseDatabase.getInstance().getReference(firebaseAuth.getCurrentUser().getUid());
ArrayList<String> docRefList =new ArrayList<>();
mDatabaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
String docRef = postSnapshot.getValue(String.class);
docRefList.add(docRef);
}
}
@Override
public void onCancelled(DatabaseError error) {
Log.d(TAG, "Error Load");
}
});
请记住,onDataChange() 是从 Firebase DB 读取的异步调用。因此,对收到的数据进行任何后期处理,都必须等到数据读取完成。