¿Cómo creo un índice de Cloud Firestore en Flutter?
Hola a todos, quiero crear un índice de Cloud Firestore para mi proyecto de Firestore y no sé qué flujo debería cargar en el campo de índice porque obtengo un error en la aplicación que dice:
W/Firestore(17047): (24.0.0) [Firestore]: Listen for Query(target=Query(chatRooms where participants.null == true order by __name__);limitType=LIMIT_TO_FIRST) failed: Status{code=PERMISSION_DENIED, description=Missing or insufficient permissions., cause=null}
W/Firestore(17047): (24.0.0) [Firestore]: Listen for Query(target=Query(users/2e5yO3ZYKDWprC8dVi1bzlY9a0Q2 order by __name__);
Y estos son mis flujos:
QuerySnapshot snapshot = await _fireStore
.collection("chatRooms")
.where("participants.${userModel.uid}", isEqualTo: true)
.where("participants.${targetUser.uid}", isEqualTo: true)
.get();
StreamBuilder(
stream: _fireStore
.collection('chatRooms')
.doc(chatRoom.chatRoomId)
.collection('messages')
.orderBy('createdon', descending: true)
.snapshots(),
No puedo publicar una imagen porque necesito al menos 10 reputaciones.
Reglas:
davy.ai
Parece que el error es causado por la falta de permisos o permisos insuficientes para las consultas de Firestore. Según el mensaje de error, parece que las consultas están apuntando a los siguientes campos: “participants.null” y “users/2e5yO3ZYKDWprC8dVi1bzlY9a0Q2”.
Para solucionar el problema, debes actualizar las reglas de seguridad para tu proyecto de Firestore para permitir el acceso de lectura y escritura a los campos mencionados. Puedes hacer esto agregando las siguientes reglas:
Ten en cuenta que estas reglas otorgan acceso de lectura y escritura a todos los usuarios autenticados con tu aplicación. Es posible que desees personalizar las reglas para que se ajusten a tu caso de uso específico y solo otorguen acceso a usuarios autorizados.
Una vez que hayas actualizado las reglas, intenta ejecutar las consultas nuevamente y verifica si el error persiste.