Gotowe reguły bezpieczeństwa Firebase dla danych właściciela, publicznego odczytu, ról admina i walidacji w Firestore, Storage i Realtime Database oraz ich testy.
Reguły bezpieczeństwa Firebase decydują, kto może odczytywać i zapisywać każdy fragment danych w Twojej aplikacji. Zaczynaj każdy plik Firestore od rules_version = '2', zezwalaj na dostęp tylko wtedy, gdy request.auth jest ustawione, porównuj request.auth.uid z właścicielem dokumentu i sprawdzaj przychodzące pola przez request.resource.data. Testuj w emulatorze przed wdrożeniem.
Zmienne, których używasz najczęściej w każdym produkcie
Jeśli Twoja aplikacja, sklep lub strefa członkowska przechowuje dane w Firebase, reguły są jedyną rzeczą, która stoi między rekordami Twoich klientów a każdym, kto ma publiczną konfigurację Twojego projektu. Poniższe przepisy obejmują przypadki, których potrzebuje większość małych aplikacji. Filtruj według produktu, skopiuj jeden i zmień nazwy kolekcji na swoje.
To jedna z dwóch opcji startowych przy tworzeniu bazy danych. Firebase opisuje tryb testowy jako dobry na początek, ale zaznacza, że pozwala każdemu odczytywać i nadpisywać Twoje dane. Tryb produkcyjny odrzuca wszystkie odczyty i zapisy z klientów mobilnych i webowych, dopóki nie napiszesz reguł.
Poszukaj warunku porównującego request.time ze stałą datą, na przykład request.time < timestamp.date(2026, 11, 1). Po tej dacie każde żądanie kończy się błędem. Zastąp go prawdziwymi regułami zamiast przesuwać datę.
Firebase podaje limit 10 wywołań dostępu do dokumentów dla żądań dotyczących jednego dokumentu i zapytań oraz 20 dla odczytów wielu dokumentów, transakcji i zapisów wsadowych. Przekroczenie kończy się błędem permission denied.
Nie. Reguły chronią żądania z klientów mobilnych i webowych. Firebase stwierdza, że serwerowe biblioteki klienckie omijają wszystkie Cloud Firestore Security Rules, więc dane wejściowe sprawdzaj osobno w kodzie serwera.
Uruchom emulator poleceniem firebase emulators:start --only firestore, a następnie napisz testy z pakietem @firebase/rules-unit-testing, używając assertSucceeds i assertFails dla działań dozwolonych i blokowanych.
Te wzorce pojawiają się w projektach startowych i tutorialach. Każdy z nich zostawia dane otwarte.
Ryzykowne reguły i bezpieczniejsze zamienniki
Uruchom emulator Firestore, a następnie sprawdź, czy właściciel może zapisywać, a nieznajomy nie.
Używa demonstracyjnego id projektu, więc nic nie trafia do produkcyjnej bazy. Uruchom go, gdy działa firebase emulators:start --only firestore.
Każdy użytkownik odczytuje i edytuje tylko dokument, którego id jest równe jego id użytkownika.
Każdy może przeglądać katalog produktów, a zmieniać go mogą tylko użytkownicy, których profil ma rolę admin.
Klient może utworzyć zamówienie tylko dla siebie, z dodatnią sumą i znanym statusem, i nie może go później edytować.
Edycja profilu jest dozwolona tylko wtedy, gdy pole roli pozostaje dokładnie takie, jakie było.
Pliki znajdują się w folderze każdego użytkownika. Wgrywane pliki muszą być obrazami mniejszymi niż 5MB, a każdy zalogowany może je oglądać.
Reguły Realtime Database są w formacie JSON. $uid przechwytuje klucz, a newData to zapisywana wartość.
Pokaż przepisy dla
Wszystkie produkty
Cloud Firestore
Cloud Storage
Realtime Database
Pokazano przepisy: {n}
Zacznij za darmo · Bez karty kredytowej