Come utilizzare Firebase Auth con Firestore in flutter

Sep 06 2020

Ho un'applicazione flutter basata su cloud_firestore e firebase_auth , aggiungo utente (pulsante blu) tramite Firebase di autenticazione e ho mantenuto l' ID nel codice in modo che questo utente sia l' amministratore , gli utenti regolari possono creare un account per applicazione (e-mail e password) Quello che voglio è assicurarmi che l' amministratore sia l'unico in grado di eliminare i dati dal database, mentre il resto degli utenti è autorizzato solo a leggere e scrivere, quindi ho fatto questo:

Ho cambiato i ruoli nel mio progetto Cloud Firestore in questo:

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';
    }
  }
}

È vero o no, e in che modo Firebase può essere sensibile a uid ?

Forse la mia domanda è come inviare l' uid con la firestorerichiesta.

Grazie in anticipo

Risposte

1 FrankvanPuffelen Sep 06 2020 at 21:21
  1. Se hai una writeregola, quella regola consente di creare, aggiornare ed eliminare le operazioni.
  2. Se hai più regole per la stessa operazione, vengono messe insieme in OR.

Ciò significa che allow read, write: if request.auth != nullconsente a qualsiasi utente autenticato di creare, aggiornare ed eliminare qualsiasi documento nel database.

Se desideri solo consentire a qualsiasi utente autenticato di creare o aggiornare un documento, ma desideri che solo l'utente con quello specifico UID elimini i documenti, devi nominare esplicitamente tali operazioni:

allow read, create, update: if request.auth != null;
allow delete: if request.auth.uid == 'psqxVzX6BvYCuWbajhcEK1QGZOo1';

Per informazioni complete, vedere la documentazione sulle operazioni granulari .