我想在firestore. 在获取另一个集合中的其他信息之前,我需要一些关于一个集合的信息。
我已经尝试使用Tasks.whenall()...但效率不高。我也尝试使用callBack。
这是我的第一个功能:
public static void getAllFavoris(){
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore.getInstance().collection("product").document("favoris").collection(uid).get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {//task is succesful
Log.e("TAG","task succes for fav ");
for (QueryDocumentSnapshot document : task.getResult()){//never enter in this loop
Log.e("TAG","Doc "+document);
Log.e("TAG", "Succes for get all favoris");
Log.e("TAG","data for favoris ::: "+document.getId());
MainActivity.favorisList.add(document.getId());
}
}
else {
Log.d("TAG", "Error getting documents: ", task.getException());
}
//call without data retrieve
Log.e("TAG","favoris ::: "+showListContentS(MainActivity.favorisList));
getProductByTagFound();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("TAG","error get All favoris"+e);
}
});
}
我需要在循环完成后调用它createFinalList(),还需要进入循环以获取数据并getProductByTag()在之后调用。
慕后森
相关分类