Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Inizia con le regole di sicurezza di Cloud Firestore

Con le regole di sicurezza di Cloud Firestore, puoi concentrarti sulla creazione di un'esperienza utente eccezionale senza dover gestire l'infrastruttura o scrivere codice di autenticazione e autorizzazione lato server.

Le regole di sicurezza forniscono il controllo degli accessi e la convalida dei dati in un formato semplice ma espressivo. Per user-based costruzione e sistemi di accesso basati sui ruoli che mantengono i dati degli utenti al sicuro, è necessario utilizzare l'autenticazione Firebase con la nube Firestore norme di sicurezza.

Regole di sicurezza versione 2

A partire da maggio 2019, è ora disponibile la versione 2 delle regole di sicurezza di Cloud Firestore. La versione 2 di regole modifica il comportamento dei caratteri jolly ricorsive {name=**} . È necessario utilizzare la versione 2, se si prevede di utilizzare le query di gruppo di raccolta . È necessario opt-in alla versione 2, rendendo rules_version = '2'; la prima riga nelle tue regole di sicurezza:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

Regole di scrittura

Tutti Firestore Regole di sicurezza cloud consistono di match affermazioni, che identificano i documenti nel database, e allow espressioni, che controllano l'accesso a tali documenti:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

Ogni richiesta di database da una libreria client mobile/web di Cloud Firestore viene valutata rispetto alle tue regole di sicurezza prima di leggere o scrivere qualsiasi dato. Se le regole negano l'accesso a uno qualsiasi dei percorsi di documenti specificati, l'intera richiesta ha esito negativo.

Di seguito sono riportati alcuni esempi di set di regole di base. Sebbene queste regole siano valide, non sono consigliate per le applicazioni di produzione:

Autenticazione richiesta

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Nega tutto

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Permettere tutto

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

Il {document=**} percorso utilizzato negli esempi precedenti partite qualsiasi documento in tutto il database. Proseguimento per la guida per le regole di sicurezza strutturazione per imparare ad abbinare percorsi dati specifici e utilizzare i dati gerarchici.

Regole di prova

Cloud Firestore fornisce un simulatore di regole che puoi utilizzare per testare il tuo set di regole. È possibile accedere al simulatore dalla scheda Regole nella sezione Nuvola FireStore della console Firebase.

Il simulatore di regole consente di simulare letture, scritture ed eliminazioni autenticate e non autenticate. Quando si simula una richiesta autenticata, è possibile creare e visualizzare in anteprima i token di autenticazione di vari provider. Le richieste simulate vengono eseguite rispetto al set di regole nel tuo editor, non al set di regole attualmente distribuito.

Regole di distribuzione

Prima di poter iniziare a utilizzare Cloud Firestore dalla tua app mobile, dovrai distribuire le regole di sicurezza. Puoi distribuire le regole nella console Firebase o utilizzando l'interfaccia a riga di comando di Firebase.

Gli aggiornamenti alle regole di sicurezza di Cloud Firestore possono richiedere fino a un minuto per influenzare nuove query e listener. Tuttavia, possono essere necessari fino a 10 minuti per propagare completamente le modifiche e influenzare tutti i listener attivi.

Usa la console Firebase

Per configurare e distribuire il primo set di regole, aprire la scheda Regole nella sezione Nuvola FireStore della console Firebase.

Scrivi le tue regole l'editor online, quindi scegliere Pubblica.

Usa la CLI di Firebase

È inoltre possibile distribuire le regole che utilizzano il Firebase CLI . L'utilizzo della CLI consente di mantenere le regole sotto il controllo della versione con il codice dell'applicazione e distribuire le regole come parte del processo di distribuzione esistente.

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy your .rules file
firebase deploy --only firestore:rules

Prossimi passi