Firebase Cloud Firestore:无效的集合引用。集合引用必须具有奇数个段

我有以下代码,但收到错误:

Invalid collection reference. Collection references must have an odd number of segments

代码:

private void setAdapter() {
        FirebaseFirestore db = FirebaseFirestore.getInstance();
        db.collection("app/users/" + uid + "/notifications").get().addOnCompleteListener(task -> {
            if (task.isSuccessful()) {
                for (DocumentSnapshot document : task.getResult()) {
                    Log.d("FragmentNotifications", document.getId() + " => " + document.getData());
                }
            } else {
                Log.w("FragmentNotifications", "Error getting notifications.", task.getException());
            }
        });
    }

答案 1

然后,您需要更改以下内容:

db.collection("app/users/" + uid + "/notifications")...

为此:

db.collection("app").document("users").collection(uid).document("notifications")

欢迎您;)


答案 2

文档中介绍了分层数据结构和子集合。集合包含文档,文档可能包含子集合。该结构始终是集合和文档的交替模式。该文档包含以下示例说明:

请注意集合和文档的交替模式。您的馆藏和文档必须始终遵循此模式。不能引用集合中的集合或文档中的文档。

因此,集合的有效路径将始终具有奇数个段;文档的有效路径,偶数。由于您的代码正在尝试查询集合,因此 4 的路径长度无效。


推荐