java - firestore collectionreference .get() 未执行
问题描述
List<String> uniNames = new ArrayList<>();
FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference unisRef = db.collection("Universities");
unisRef.get().addOnCompleteListener(task -> {
if(task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
uniNames.add(document.getString("name"));
}
} else {
Log.d("MainActivity", "Error getting documents: ",
task.getException());
}
});
我试图从大学集合中的文档中获取字段名称的所有值,但 .get() 似乎根本没有执行。它连接到数据库就好了,我得到了一个集合引用对象,但是 .get() 完全被跳过了,所以我最终得到一个空列表。我是在错误地使用 oncomplete 侦听器还是遗漏了一些琐碎的东西?
解决方案
检查您从日志中得到的错误
如果是PERMISSION_DENIED错误,请从 firebase 控制台检查您的规则。
如果规则没问题,请确保您使用正确的字符串引用集合。请记住,firebase 集合引用是区分大小写的。