Como usar Firebase Auth com Firestore em flutter

Sep 06 2020

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

1 FrankvanPuffelen Sep 06 2020 at 21:21
  1. Se você tiver uma writeregra, essa regra permite criar, atualizar e excluir operações.
  2. 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 .