【发布时间】:2020-10-18 20:30:15
【问题描述】:
我是java 的新手。我有一个firestore_member_list。在 firestore_member_list 中,它包含值:["steve","ram","kam"]。我正在使用for 循环来一一传递值。
loadingbar.show()
for( int k=0; k<firestore_member_list.size();k++){
String member_name = firestore_member_list.get(k);
final DocumentReference memDataNameCol = firestoredb.collection("member_collection").document(member_name);
memDataNameCol.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
// In here, I am retreiveing the document data from firestore and assigning it to the ArrayList which is `all_mem_data`
all_mem_data.add(document.get("member_name").toString());
all_mem_data.add(document.get("member_address").toString());
Toast.makeText(getActivity(), "all mem data array"+all_mem_data.toString(),
Toast.LENGTH_LONG).show();
}
}
}
});
}
Log.d("all_mem_data",all_mem_data)
loadingbar.hide()
我知道 firestore 是异步执行的。由于firestore异步检索数据,在填充all_mem_data的数组之前,最后一行被执行并显示空数组。如何等待数组被填充,填充后,执行最后两行。请帮我解决问题。
【问题讨论】:
标签: java android arrays firebase google-cloud-firestore