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

时间:2017-10-09 04:53:31

标签: java android firebase google-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());
            }
        });
    }

5 个答案:

答案 0 :(得分:28)

然后你需要改变这个:

git rebase

为此:

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

欢迎你;)

答案 1 :(得分:24)

the documentation中描述了分层数据结构和子集合。集合包含文档,文档可能包含子集合。结构始终是集合和文档的交替模式。该文档包含一个示例的描述:

  

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

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

答案 2 :(得分:1)

我提供了错误的entity_Id时遇到了此问题。

代替dojo/default/datasets/fe67ec58-6208-4234-a4ee-98c5dce4665f, 我提供了fe67ec58-6208-4234-a4ee-98c5dce4665f,现在工作正常。

答案 3 :(得分:0)

您缺少集合参考。 即db.collection(**这将变为空**)。

答案 4 :(得分:0)

当我尝试读取documentReference(DocumentReference docRef2 = fireStoreDb.Collection(“ Ass”)。Document)时,当我提供一个包含“ /”字符(我的值为N / A)的Entity_Id时,遇到了此问题。 (ass.Tel.ToString()) .Collection(“ vehicules”)。Document(ve.Immatriculation);)。 在这里,值ve.Immatriculation等于N / A,这就是问题所在。