Szybkie weryfikowanie reguł zabezpieczeń Firebase

Aby szybko przetestować zaktualizowany Firebase Security Rules w konsoli Firebase, użyj Playgrounda zasad.

Warsztat reguł to wygodne narzędzie do odkrywania nowych zachowań lub szybkiego sprawdzania reguł podczas ich pisania. Wyświetla komunikat potwierdzający, że dostęp został przyznany lub odmówiony zgodnie z parametrami ustawionymi w symulacji.

Korzystanie ze środowiska do testowania reguł

  1. Otwórz konsolę Firebase i wybierz projekt.
  2. Następnie w menu usługi wykonaj jedną z tych czynności:
    • W odpowiednim przypadku wybierz Realtime Database, Cloud Firestore lub Pamięć, a potem kliknij Reguły, aby przejść do edytora Rules.
  3. Po wprowadzeniu zmian w edytorze kliknij Gry w reguły.
  4. W ustawieniach Rynku reguł wybierz opcje testu, w tym:
    • Testowanie odczytów lub zapisów.
    • Określona lokalizacja w bazie danych lub zasobniku pamięci masowej, podana jako ścieżka.
    • Typ uwierzytelniania: niezalogowany, uwierzytelniony anonimowy użytkownik lub konkretny identyfikator użytkownika.
    • dane dotyczące dokumentu, do których odwołują się Twoje reguły (np. jeśli Twoje reguły wymagają obecności określonego pola, zanim zezwolą na zapisanie danych);
  5. Kliknij Wykonaj i sprawdź wyniki na banerze nad edytorem.

Przykładowy scenariusz środowiska do testowania reguł

Testuj działanie Playgroundu reguł, korzystając z tego przykładowego scenariusza i podstawowych reguł.

Cloud Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

Realtime Database

 // These rules grant access to a node matching the authenticated
 // user's ID from the Firebase auth token
 {
   "rules": {
     "users": {
       "$uid": {
         ".read": "$uid === auth.uid",
         ".write": "$uid === auth.uid"
       }
     }
   }
 }
 

Cloud Storage

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • W edytorze Rules dodaj powyższą regułę.

  • W menu Typ symulacji wybierz get i w polu Lokalizacja wpisz prawidłową ścieżkę.

  • Włącz opcję Uwierzytelnianie i w menu Usługodawca wybierz typ uwierzytelniania.

  • Wpisz dane identyfikatora użytkownika i kliknij Uruchom.

Wyniki symulacji pojawiają się u góry edytora. W zależności od podanych przez Ciebie informacji o identyfikatorze użytkownika powinien pojawić się baner potwierdzający, że odczyt został albo zaakceptowany, albo odrzucony.