Prompt AI: napisz reguły zabezpieczeń Firebase

Ten prompt może pomóc asystentowi AI, np. Gemini CLI, w generowaniu i ulepszaniu Firebase Security Rules na potrzeby Twojej aplikacji. Możesz go użyć do tworzenia Rules w przypadku typowych zastosowań, takich jak przyznawanie dostępu konkretnym użytkownikom, wdrażanie uprawnień opartych na rolach i weryfikowanie danych.

Ten prompt służy do generowania Rules dla:

  • Cloud Firestore: zabezpieczanie kolekcji i dokumentów na podstawie logiki aplikacji.
  • Cloud Storage for Firebase: sprawdzanie uprawnień dostępu do zapisanych plików.

Użycie tego promptu może pomóc Ci w zastosowaniu solidnych zabezpieczeń, ale przed wdrożeniem Rules w środowisku produkcyjnym zawsze należy dokładnie je przetestować. Więcej informacji o testowaniu Rules znajdziesz w artykule Pierwsze kroki z Firebase Security Rules: testowanie reguł.

Wymagania wstępne

Ograniczenia

Stale ulepszamy tę funkcję, więc lista ograniczeń może się zmienić. Często sprawdzaj, czy nie ma nowych informacji.

  • Gemini w Firebase nie może wygenerować Firebase Security Rules. Używaj alternatywnego asystenta AI, np. Gemini CLI.
  • Prompt ma generować Firebase Security Rules dla Cloud FirestoreCloud Storage for Firebase. Nie potrafi jeszcze generować Rules dla Firebase Realtime Database.
  • Firebase Security Rules nie są wywoływane podczas uzyskiwania dostępu do bazy danych lub zasobnika z serwera lub innego środowiska backendu, na przykład podczas korzystania z Firebase Admin SDK. Jeśli używasz Admin SDK, odpowiadasz za zarządzanie autoryzacją i weryfikacją danych w kodzie backendu.

Używanie prompta

  1. Użyj eksperymentalnego Gemini CLI rozszerzenia dla Firebase Security Rules, aby wygenerować reguły i testy.

    To rozszerzenie analizuje kod źródłowy, aby pomóc w identyfikowaniu schematów danych i wzorców dostępu do Cloud FirestoreCloud Storage. Został on zaprojektowany do tworzenia projektów Rules na podstawie zasady jak najmniejszych uprawnień i próbuje wykrywać luki w zabezpieczeniach za pomocą iteracyjnych symulacji „ataków”. Aby pomóc w ostatecznej weryfikacji, udostępnia początkowy zestaw testów jednostkowych za pomocą @firebase/rules-unit-testing, co pozwala weryfikować logikę zabezpieczeń lokalnie za pomocą Pakietu emulatorów lokalnych Firebase.

    Aby zainstalować i używać rozszerzenia:

    1. Zainstaluj rozszerzenie Gemini CLI:

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. Otwórz pokój Gemini CLI.

      gemini
      
    1. W katalogu głównym projektu uruchom rozszerzenie, aby wygenerować reguły dla Cloud Firestore:

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      Możesz też wygenerować reguły dla Cloud Storage:

      /firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
      

    Rozszerzenie tworzy w katalogu głównym projektu katalog rules_test dla Cloud Firestore lub katalog storage_rules_test dla Cloud Storage. Ten nowy katalog zawiera wygenerowany plik .rules oraz projekt Node.js z testami jednostkowymi.

  2. Sprawdź wyniki weryfikacji i testu reguł:

    • Sprawdzanie składni – po wygenerowaniu reguł Gemini CLIautomatycznie sprawdza składnię za pomocą polecenia firebase_validate_security_rules z serwera Firebase MCP.
    • Testy jednostkowe – po sprawdzeniu składni Gemini CLI próbuje uruchomić wygenerowane testy jednostkowe za pomocą Firebase Local Emulator Suite. Aby uruchomić testy, musisz uruchomić Firebase Local Emulator Suite w osobnym terminalu.

    Jeśli testy nie uruchomią się automatycznie, uruchom Firebase Local Emulator Suite w osobnym terminalu, a potem użyj jednej z tych opcji, aby uruchomić testy:

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. Gdy uzyskasz zadowalający wynik wygenerowanego Rules, użyj tego polecenia interfejsu Firebase, aby wdrożyć Rules:

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

Dodatkowe materiały

  • Aby uzyskać dodatkową pomoc w zakresie stanu zabezpieczeń, możesz też użyć rozszerzenia zabezpieczeń do Gemini CLI, rozszerzenia open source, które analizuje zmiany w kodzie, aby identyfikować zagrożenia i luki w zabezpieczeniach.