Como usar Firebase Auth com Firestore em flutter
Tenho uma aplicação vibração baseado em cloud_firestore e firebase_auth , I Adicionar utilizador (botão azul) por autenticação Firebase, e manteve o ID no código de modo a que este usuário é o administrador , os usuários regulares podem criar uma conta pela aplicação (e-mail e senha) , O que eu quero é ter certeza de que o administrador é o único que pode excluir dados do banco de dados, enquanto o resto dos usuários só tem permissão para ler e gravar, então fiz o seguinte:
Mudei os papéis em meu projeto do Cloud Firestore para este:
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';
}
}
}
Isso é verdade ou não, e como o Firebase pode ser sensível ao uid ?
Talvez minha dúvida seja como enviar o uid com o firestorepedido.
Agradeço antecipadamente
Respostas
- Se você tiver uma
writeregra, essa regra permite criar, atualizar e excluir operações. - Se você tiver várias regras para a mesma operação, elas serão combinadas em OU.
Isso significa que você allow read, write: if request.auth != nullpermite que qualquer usuário autenticado crie, atualize e exclua qualquer documento do banco de dados.
Se você deseja permitir que qualquer usuário autenticado crie ou atualize um documento, mas apenas deseja que o usuário com esse UID específico exclua documentos, é necessário nomear explicitamente essas operações:
allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';
Para obter informações completas, consulte a documentação sobre operações granulares .