【发布时间】:2018-12-28 18:10:14
【问题描述】:
我正在尝试从我的数据库中下载一些测验对象。 下面的函数是从某个activity的onCreate中调用的。
private void downloadQuizzesFromCloud(){
String user_id = FirebaseAuth.getInstance().getCurrentUser().getUid();
final FirebaseFirestore db = FirebaseFirestore.getInstance();
String user_quizzes_path = "users/".concat(user_id).concat("/quizzes");
Query userQuizzes = db.collection(user_quizzes_path);
userQuizzes.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
quizzes.clear();
for (QueryDocumentSnapshot document : task.getResult()) {
Quiz quizDownloaded = getQuizFromCloud(document.getId());
quizzes.add(quizDownloaded);
}
Toast.makeText(QuizzesActivity.this,"downloaded to list ".concat(String.valueOf(quizzes.size()).concat(" quizzes")), Toast.LENGTH_SHORT).show();
//TODO put in recycle adapter
} else { }
}
});
}
(user_quizzes_path 包含存储在云上的测验对象集合的正确路径)
我调试了这个函数,发现命令后:
userQuizzes.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>()
函数完成执行,即不检查和执行 onComplete 的情况,只是跳过所有这些代码。
我试图在 firebase 的文档中找到它,但没有找到任何东西。 为什么会发生这种情况,我该如何解决?
在此不胜感激,谢谢!
【问题讨论】:
标签: android firebase google-cloud-firestore