Cómo usar Firebase Auth con Firestore en flutter
Tengo una aplicación de flutter basada en cloud_firestore y firebase_auth , agrego usuario (botón azul) mediante Authentication firebase, y mantengo la ID en el código para que este usuario sea el administrador , los usuarios regulares pueden crear una cuenta por aplicación (correo electrónico y contraseña) , Lo que quiero es asegurarme de que el administrador sea el único que pueda eliminar datos de la base de datos, mientras que el resto de los usuarios solo pueden leer y escribir, así que hice esto:
Cambié las funciones en mi proyecto de Cloud Firestore a esto:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
allow delete : if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
}
}
}
¿Es esto cierto o no, y cómo puede Firebase ser sensible al uid ?
Quizás mi pregunta es cómo enviar el uid con la firestoresolicitud.
Gracias de antemano
Respuestas
- Si tiene una
writeregla, esa regla permite crear, actualizar y eliminar operaciones. - Si tiene varias reglas para la misma operación, se unen en OR.
Esto significa que allow read, write: if request.auth != nullpermite que cualquier usuario autenticado cree, actualice y elimine cualquier documento en la base de datos.
Si solo desea permitir que cualquier usuario autenticado cree o actualice un documento, pero solo desea que el usuario con ese UID específico elimine documentos, debe nombrar explícitamente esas operaciones:
allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
Para obtener información completa, consulte la documentación sobre operaciones granulares .