首页 > 解决方案 > 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 侦听器还是遗漏了一些琐碎的东西?

标签: javaandroidfirebasegoogle-cloud-firestore

解决方案


检查您从日志中得到的错误

如果是PERMISSION_DENIED错误,请从 firebase 控制台检查您的规则。

如果规则没问题,请确保您使用正确的字符串引用集合。请记住,firebase 集合引用是区分大小写的。


推荐阅读