subcollection references odd number must invalid have has firestore even collection but angularfirestore java android firebase google-cloud-firestore

java - firestore - invalid collection reference. collection references must have an odd number of segments, but has 2



Firebase Cloud Firestore: referencia de colección no válida. Las referencias de colección deben tener un número impar de segmentos (3)

Tengo el siguiente código y obtengo un error:

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

Y el código:

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()); } }); }


Entonces necesitas cambiar esto:

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

para esto:

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

De nada ;)


Las estructuras de datos jerárquicos y las subcolecciones se describen en la documentación . Una colección contiene documentos y un documento puede contener una subcolección. La estructura es siempre un patrón alternativo de colecciones y documentos. La documentación contiene esta descripción de un ejemplo:

Observe el patrón alternativo de colecciones y documentos. Tus colecciones y documentos siempre deben seguir este patrón. No puede hacer referencia a una colección en una colección o un documento en un documento.

Por lo tanto, una ruta válida a una colección siempre tendrá un número impar de segmentos; una ruta válida a un documento, un número par. Dado que su código está intentando consultar una colección, la longitud de la ruta de acceso de cuatro no es válida.


Te estás perdiendo la referencia de la colección. es decir, db.collection (** Esto es nulo **).