Dokumentacja interfejsu wiersza poleceń Firebase

Wiersz poleceń Firebase (GitHub) udostępnia różne narzędzia do zarządzania, wyświetlania i wdrażania projektów Firebase.

Zanim użyjesz wiersza poleceń Firebase, skonfiguruj projekt Firebase.

Konfigurowanie lub aktualizowanie interfejsu wiersza poleceń

Instalowanie interfejsu wiersza poleceń Firebase

Interfejs wiersza poleceń Firebase możesz zainstalować za pomocą metody dopasowanej do systemu operacyjnego, poziomu doświadczenia lub przypadku użycia. Niezależnie od tego, jak zainstalujesz interfejs wiersza poleceń, masz dostęp do tych samych funkcji i polecenia firebase.

Windows macOS Linux

Windows

Interfejs wiersza poleceń Firebase dla systemu Windows można zainstalować, korzystając z jednego z tych sposobów:

Opcja Opis Polecane dla…
samodzielny plik binarny Pobierz samodzielny plik binarny dla interfejsu wiersza poleceń. Następnie możesz otworzyć plik wykonywalny, aby otworzyć powłokę, w której możesz uruchomić polecenie firebase. Nowi deweloperzy

Deweloperzy, którzy nie używają lub nie znają Node.js
npm Użyj npm (Node Package Manager) do zainstalowania interfejsu wiersza poleceń i włączenia dostępnego globalnie polecenia firebase. Deweloperzy korzystający z Node.js

samodzielny plik binarny

Aby pobrać i uruchomić binarną wersję interfejsu wiersza poleceń Firebase, wykonaj te czynności:

  1. Pobierz binarny interfejs wiersza poleceń Firebase na potrzeby systemu Windows.

  2. Uzyskaj dostęp do pliku binarnego, aby otworzyć powłokę, w której możesz uruchomić polecenie firebase.

  3. Kontynuuj logowanie i testowanie interfejsu wiersza poleceń CLI.

npm

Aby zainstalować interfejs wiersza poleceń Firebase za pomocą npm (menedżera pakietów Node), wykonaj te czynności:

  1. Zainstaluj Node.js za pomocą nvm-windows (menedżera wersji Node). Instalacja Node.js automatycznie instaluje narzędzia wiersza poleceń npm.

  2. Zainstaluj interfejs wiersza poleceń Firebase za pomocą interfejsu npm, uruchamiając to polecenie:

    npm install -g firebase-tools

    To polecenie włącza dostępne globalnie polecenie firebase.

  3. Kontynuuj logowanie i testowanie interfejsu wiersza poleceń CLI.

macOS lub Linux

Aby zainstalować interfejs wiersza poleceń Firebase na komputerze z systemem macOS lub Linux, możesz użyć jednej z tych opcji:

Opcja Opis Polecane dla…
skrypt automatycznej instalacji, Uruchom jedno polecenie, które automatycznie wykryje Twój system operacyjny, pobierzesz najnowszą wersję interfejsu wiersza poleceń, a następnie włączy polecenie firebase dostępne globalnie. Nowi programiści

Programiści, którzy nie używają lub nie znają Node.js

Automatyczne wdrażanie w środowisku CI/CD
samodzielny plik binarny Pobierz samodzielny plik binarny dla interfejsu wiersza poleceń. Następnie możesz skonfigurować i uruchomić plik binarny w taki sposób, aby pasował do Twojego przepływu pracy. w pełni konfigurowalne przepływy pracy za pomocą interfejsu wiersza poleceń;
npm Użyj npm (Node Package Manager) do zainstalowania interfejsu wiersza poleceń i włączenia dostępnego globalnie polecenia firebase. Deweloperzy korzystający z Node.js

skrypt automatycznej instalacji

Aby zainstalować interfejs wiersza poleceń Firebase za pomocą skryptu automatycznej instalacji, wykonaj te czynności:

  1. Uruchom to polecenie cURL:

    curl -sL https://firebase.tools | bash

    Ten skrypt automatycznie wykrywa system operacyjny, pobiera najnowszą wersję interfejsu wiersza poleceń Firebase, a następnie włącza dostępne globalnie polecenie firebase.

  2. Kontynuuj logowanie i testowanie interfejsu wiersza poleceń CLI.

Więcej przykładów i szczegółowych informacji o skrypcie automatycznej instalacji znajdziesz w kodzie źródłowym skryptu na stronie firebase.tools.

samodzielny plik binarny

Aby pobrać i uruchomić binarne dane interfejsu wiersza poleceń Firebase odpowiednie dla Twojego systemu operacyjnego, wykonaj te czynności:

  1. Pobierz plik binarny Firebase CLI dla swojego systemu operacyjnego: macOS | Linux

  2. (Opcjonalnie) Skonfiguruj polecenie firebase, które jest dostępne globalnie.

    1. Aby plik binarny był wykonywalny, uruchom chmod +x ./firebase_tools.
    2. Dodaj ścieżkę do pliku binarnego do zmiennej środowiskowej PATH.
  3. Kontynuuj logowanie i testowanie interfejsu wiersza poleceń CLI.

npm

Aby zainstalować interfejs wiersza poleceń Firebase za pomocą npm (menedżera pakietów Node), wykonaj te czynności:

  1. Zainstaluj Node.js za pomocą nvm (menedżera wersji Node).
    Instalacja Node.js powoduje automatyczne zainstalowanie narzędzi wiersza poleceń npm.

  2. Zainstaluj interfejs wiersza poleceń Firebase za pomocą interfejsu npm, uruchamiając to polecenie:

    npm install -g firebase-tools

    To polecenie włącza dostępne globalnie polecenie firebase.

  3. Kontynuuj logowanie i testowanie interfejsu wiersza poleceń CLI.

Logowanie się i testowanie interfejsu wiersza poleceń Firebase

Po zainstalowaniu interfejsu wiersza poleceń musisz się uwierzytelnić. Następnie możesz potwierdzić uwierzytelnianie, podając listę projektów Firebase.

  1. Zaloguj się w Firebase za pomocą konta Google, wykonując to polecenie:

    firebase login

    To polecenie łączy Twój komputer lokalny z Firebase i daje Ci dostęp do projektów Firebase.

  2. Sprawdź, czy wiersz poleceń jest prawidłowo zainstalowany i czy ma dostęp do Twojego konta, wyświetlając listę projektów Firebase. Uruchom to polecenie:

    firebase projects:list

    Wyświetlana lista powinna być taka sama jak projekty Firebase wymienione w konsoli Firebase.

Aktualizowanie do najnowszej wersji interfejsu wiersza poleceń

Zazwyczaj warto korzystać z najnowszej wersji interfejsu wiersza poleceń Firebase.

Sposób aktualizacji wersji interfejsu wiersza poleceń zależy od systemu operacyjnego i sposobu zainstalowania interfejsu wiersza poleceń.

Windows

  • samodzielny plik binarny: pobierz nową wersję, a następnie zastąp ją w systemie.
  • npm: uruchom npm install -g firebase-tools

macOS

  • skrypt automatycznej instalacji: uruchom curl -sL https://firebase.tools | upgrade=true bash.
  • samodzielny plik binarny: pobierz nową wersję i zastąp ją w swoim systemie.
  • npm: uruchom npm install -g firebase-tools

Linux

  • skrypt automatycznej instalacji: uruchom curl -sL https://firebase.tools | upgrade=true bash.
  • samodzielny plik binarny: pobierz nową wersję i zastąp ją w swoim systemie.
  • npm: uruchom npm install -g firebase-tools

Korzystanie z interfejsu wiersza poleceń w systemach CI

Narzędzie wiersza poleceń Firebase wymaga przeglądarki do uwierzytelnienia, ale jest w pełni zgodne z CI i innymi środowiskami bez głowy.

  1. Na komputerze z przeglądarką zainstaluj interfejs wiersza poleceń Firebase.

  2. Rozpocznij proces logowania, uruchamiając to polecenie:

    firebase login:ci
  3. Otwórz podany adres URL i zaloguj się na konto Google.

  4. Wydrukuj nowy token odświeżania. Obecna sesja CLI nie zostanie przerwana.

  5. Przechowuj token wyjściowy w bezpiecznym, ale łatwo dostępnym miejscu w systemie CI.

  6. Użyj tego tokena podczas uruchamiania poleceń firebase. Możesz użyć jednej z tych opcji:

    • Opcja 1: zapisz token jako zmienną środowiskową FIREBASE_TOKEN. Twój system będzie automatycznie używać tokena.

    • Opcja 2: uruchom wszystkie polecenia firebase z flagą --token TOKEN w systemie CI.
      W następującej kolejności: flaga, zmienna środowiskowa, wybrany projekt Firebase.

Inicjowanie projektu Firebase

Wiele typowych zadań wykonywanych za pomocą wiersza poleceń, takich jak wdrażanie w projekcie Firebase, wymaga katalogu projektu. Utwórz katalog projektu za pomocą polecenia firebase init. Katalog projektu jest zwykle tym samym katalogiem co katalog główny kontroli źródła, a po uruchomieniu firebase init zawiera plik konfiguracji firebase.json.

Aby zainicjować nowy projekt Firebase, uruchom to polecenie w katalogu aplikacji:

firebase init

Polecenie firebase init poprowadzi Cię przez konfigurowanie katalogu projektu i niektórych usług Firebase. Podczas inicjowania projektu interfejs wiersza poleceń Firebase prosi o wykonanie tych czynności:

  • Wybierz usługi Firebase, które chcesz skonfigurować w projekcie Firebase.

    Na tym etapie możesz skonfigurować konkretne pliki w przypadku wybranych produktów. Więcej informacji o tych konfiguracjach znajdziesz w dokumentacji konkretnego produktu (np. Hosting). Pamiętaj, że zawsze możesz uruchomić polecenie firebase init, aby skonfigurować więcej usług Firebase.

  • Wybierz domyślny projekt Firebase.

    Ten krok powoduje powiązanie bieżącego katalogu projektu z projektem Firebase, aby polecenia dotyczące konkretnego projektu (np. firebase deploy) były wykonywane w odpowiednim projekcie Firebase.

    Możesz też powiązać wiele projektów Firebase (np. projekt testowy i produkcyjny) z tym samym katalogiem projektu.

Pod koniec inicjalizacji Firebase automatycznie tworzy w katalogu głównym lokalnej aplikacji te 2 pliki:

  • Plik konfiguracji firebase.json, który zawiera konfigurację projektu.

  • Plik .firebaserc, w którym są przechowywane aliasy projektu.

plik firebase.json;

Polecenie firebase init tworzy plik konfiguracji firebase.json w katalogu głównym katalogu projektu.

Plik firebase.json jest wymagany do wdrażania zasobów za pomocą interfejsu wiersza poleceń Firebase, ponieważ określa, które pliki i ustawienia z katalogu projektu są wdrażane do projektu Firebase. Ponieważ niektóre ustawienia mogą być zdefiniowane w katalogu projektu lub na konsoli Firebase, upewnij się, że rozwiązujesz wszelkie potencjalne konflikty wdrożenia.

Większość opcji Firebase Hosting możesz skonfigurować bezpośrednio w pliku firebase.json. W przypadku innych usług Firebase, które można wdrożyć za pomocą interfejsu wiersza poleceń Firebase, polecenie firebase init tworzy określone pliki, w których możesz zdefiniować ustawienia tych usług, np. plik index.js dla usługi Cloud Functions. W pliku firebase.json możesz też skonfigurować haczyki przed wdrożeniem lub po wdrożeniu.

Poniżej znajduje się przykładowy plik firebase.json z ustawieniami domyślnymi, jeśli podczas inicjalizacji wybierzesz Firebase Hosting, Cloud FirestoreCloud Functions for Firebase (z wybranymi opcjami źródła i linta TypeScript).

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Domyślnie używany jest plik firebase.json, ale możesz podać flagę --config PATH, aby podać inny plik konfiguracji.

Konfiguracja wielu baz danych Cloud Firestore

Gdy uruchomisz firebase init, plik firebase.json będzie zawierać jeden klucz firestore odpowiadający domyślnej bazie danych projektu, jak pokazano powyżej.

Jeśli Twój projekt zawiera wiele baz danych Cloud Firestore, zmodyfikuj plik firebase.json, aby powiązać z każdą z nich różne pliki źródłowe indeksu Cloud Firestore Security Rules i bazy danych. Zmodyfikuj plik za pomocą tablicy JSON z pojedynczym wpisem dla każdej bazy danych.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Cloud Functions plików, które mają być ignorowane podczas wdrażania

Podczas wdrażania funkcji interfejs wiersza poleceń automatycznie określa listę plików w katalogu functions, które należy zignorować. Zapobiega to wdrażaniu na zapleczu niepotrzebnych plików, które mogłyby zwiększyć rozmiar wdrożenia.

Lista plików ignorowanych domyślnie, wyświetlana w formacie JSON:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Jeśli dodasz własne wartości niestandardowe dla atrybutu ignore w elementach firebase.json, pamiętaj, aby zachować (lub dodać, jeśli brakuje) listę plików pokazaną powyżej.

Zarządzanie aliasami projektu

Z jedną katalogiem projektu możesz powiązać wiele projektów Firebase. Możesz na przykład używać jednego projektu Firebase na potrzeby testów, a drugiego na potrzeby produkcji. Korzystając z różnych środowisk projektów, możesz weryfikować zmiany przed wdrożeniem ich w produkcji. Polecenie firebase use umożliwia przełączanie się między aliasami oraz tworzenie nowych aliasów.

Dodawanie aliasu projektu

Gdy wybierzesz projekt Firebase podczas inicjalizacji projektu, zostanie mu automatycznie przypisany alias default. Aby jednak zezwalać na uruchamianie poleceń dotyczących konkretnego projektu w ramach innego projektu Firebase, ale nadal używać tego samego katalogu projektu, uruchom to polecenie w katalogu projektu:

firebase use --add

To polecenie spowoduje wyświetlenie prompta z prośbą o wybranie innego projektu Firebase i przypisanie mu aliasu. Przypisania aliasów są zapisywane w pliku .firebaserc w katalogu projektu.

Używanie aliasów projektów

Aby używać przypisanych aliasów projektów Firebase, uruchom dowolne z tych poleceń w katalogu projektu.

Polecenie Opis
firebase use Wyświetlanie listy aktualnie zdefiniowanych aliasów katalogu projektu
firebase use \
PROJECT_ID|ALIAS
Spowoduje, że wszystkie polecenia będą wykonywane w ramach wybranego projektu Firebase.
Interfejs wiersza poleceń używa tego projektu jako „aktywnego projektu”.
firebase use --clear Czyści aktywny projekt.

Uruchom firebase use PROJECT_ID|ALIAS, aby ustawić nowy aktywny projekt przed uruchomieniem innych poleceń interfejsu wiersza poleceń.

firebase use \
--unalias PROJECT_ALIAS
Usuwa alias z katalogu projektu.

Możesz zmienić projekt używany jako aktywny, podając flagę --project w dowolnym poleceniu wiersza poleceń. Na przykład: możesz skonfigurować interfejs wiersza poleceń tak, aby działał w projektie Firebase, do którego przypisałeś alias staging. Jeśli chcesz wykonać pojedyncze polecenie w projekcie Firebase, do którego przypisałeś alias prod, możesz użyć np. polecenia firebase deploy --project=prod.

Kontrola wersji i aliasy projektów

Ogólnie rzecz biorąc, aby umożliwić zespołowi udostępnianie aliasów projektów, musisz dodać plik .firebaserc do kontroli wersji. Jednak w przypadku projektów open source lub szablonów startowych nie należy zazwyczaj sprawdzać pliku .firebaserc.

Jeśli masz projekt deweloperski, którego używasz tylko Ty, możesz użyć parametru --project z każdym poleceniem lub uruchomić firebase use PROJECT_ID bez przypisywania aliasu do projektu Firebase.

Serwowanie i testowanie projektu Firebase lokalnie

Przed wdrożeniem projektu Firebase w wersji produkcyjnej możesz wyświetlić i przetestować go w adresach URL hostowanych lokalnie. Jeśli chcesz przetestować tylko wybrane funkcje, możesz użyć listy oddzielonych przecinkami w flagach w komendzie firebase serve.

Jeśli chcesz wykonać jedną z tych czynności, uruchom to polecenie w głównym katalogu projektu lokalnego:

  • Wyświetlanie treści statycznych aplikacji hostowanej w Firebase.
  • Używasz Cloud Functions do generowania dynamicznych treści dla Firebase Hosting i chcesz użyć funkcji HTTP w wersji produkcyjnej (wdrożonej), aby emulować Hosting w lokalnym adresie URL.
firebase serve --only hosting

Emulowanie projektu za pomocą lokalnych funkcji HTTP

Uruchom dowolne z tych poleceń w katalogu projektu, aby emulować projekt za pomocą lokalnych funkcji HTTP.

  • Aby emulować funkcje HTTP i hosting na potrzeby testowania adresów URL lokalnych, użyj jednego z tych poleceń:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Aby emulować tylko funkcje HTTP, użyj tego polecenia:

    firebase serve --only functions

Testowanie na innych urządzeniach lokalnych

Domyślnie usługa firebase serve odpowiada tylko na żądania wysyłane przez usługę localhost. Oznacza to, że będziesz mieć dostęp do hostowanych treści z poziomu przeglądarki na komputerze, ale nie z innych urządzeń w sieci. Jeśli chcesz przetestować inne urządzenia lokalne, użyj flagi --host, np.:

firebase serve --host 0.0.0.0  // accepts requests to any host

Wdrażanie w projekcie Firebase

Interfejs wiersza poleceń Firebase zarządza wdrażaniem kodu i komponentów do projektu Firebase, w tym:

  • Nowe wersje witryn Firebase Hosting
  • Nowe, zaktualizowane lub istniejące Cloud Functions for Firebase
  • Nowe lub zaktualizowane schematy i oprogramowanie sprzęgające na potrzeby Firebase Data Connect
  • Reguły dotyczące Firebase Realtime Database
  • Reguły dotyczące Cloud Storage for Firebase
  • Reguły dotyczące Cloud Firestore
  • Indeksy dla zadania Cloud Firestore

Aby wdrożyć projekt w Firebase, uruchom to polecenie w katalogu projektu:

firebase deploy

Opcjonalnie możesz dodać komentarz do każdego wdrożenia. Ten komentarz będzie wyświetlany wraz z innymi informacjami o wdrożeniu na Firebase Hostingstronie projektu. Przykład:

firebase deploy -m "Deploying the best new feature ever."

Gdy używasz polecenia firebase deploy, pamiętaj o tych kwestiach:

  • Aby wdrożyć zasoby z katalogu projektu, katalog projektu musi zawierać plik firebase.json. Ten plik jest tworzony automatycznie przez polecenie firebase init.

  • Domyślnie firebase deploy tworzy wersję wszystkich zasobów do wdrożenia w katalogu projektu. Aby wdrożyć określone usługi lub funkcje Firebase, użyj częściowego wdrożenia.

Konflikty wdrożenia reguł zabezpieczeń

W przypadku usług Firebase Realtime Database, Cloud Storage for Firebase i Cloud Firestore reguły zabezpieczeń możesz zdefiniować w lokalnym katalogu projektu lub w konsoli Firebase.

Inną opcją, która pozwala uniknąć konfliktów podczas wdrażania, jest częściowe wdrażanie i definiowanie reguł tylko w konsoli Firebase.

Limity wdrożeń

Możliwe (choć mało prawdopodobne), że przekroczysz limit, który ogranicza szybkość lub liczbę operacji wdrażania Firebase. Na przykład podczas wdrażania bardzo dużej liczby funkcji możesz otrzymać komunikat o błędzie HTTP 429 Quota. Aby rozwiązać takie problemy, spróbuj wykorzystać częściowe wdrożenie.

Cofanie wdrożenia

Możesz cofnąć wdrożenie Firebase Hosting na stronie Firebase Hosting projektu, wybierając działanie Cofnij dla wybranej wersji.

Obecnie nie można cofnąć wersji reguł zabezpieczeń w przypadku Firebase Realtime Database, Cloud Storage for Firebase lub Cloud Firestore.

Wdrażanie konkretnych usług Firebase

Jeśli chcesz wdrożyć tylko określone usługi lub funkcje Firebase, możesz użyć w flagach polecenia firebase deploy listy oddzielonych przecinkami. Na przykład polecenie poniżej wdraża reguły bezpieczeństwa Firebase Hosting dotyczące treści i Cloud Storage.

firebase deploy --only hosting,storage

W tabeli poniżej znajdziesz listę usług i funkcji dostępnych w przypadku częściowego wdrożenia. Nazwy w flagach odpowiadają kluczom w pliku konfiguracji firebase.json.

Składnia flagi Wdrożona usługa lub funkcja
--only hosting Treści (Firebase Hosting)
--only database Firebase Realtime Database reguły
--only dataconnect Firebase Data Connect schematy i złącza
--only storage Cloud Storage for Firebase reguły
--only firestore Cloud Firestore reguł i indeksów dla wszystkich skonfigurowanych baz danych
--only functions Cloud Functions for Firebase (możliwe są bardziej szczegółowe wersje tego flagi)

Wdrażanie określonych funkcji

Podczas wdrażania funkcji możesz kierować je na konkretne funkcje. Przykład:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Inną opcją jest grupowanie funkcji w plikach eksportu /functions/index.js. Funkcja grupowania umożliwia wdrażanie wielu funkcji za pomocą jednego polecenia.

Aby zdefiniować groupAgroupB, możesz na przykład użyć tych funkcji:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

W tym przykładzie oddzielny plik functions/groupB.js zawiera dodatkowe funkcje, które definiują funkcje w pliku groupB. Przykład:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

W tym przykładzie możesz wdrożyć wszystkie funkcje groupA, uruchamiając to polecenie w katalogu projektu:

firebase deploy --only functions:groupA

Możesz też ukierunkować funkcję na określony element w grupie, uruchamiając to polecenie:

firebase deploy --only functions:groupA.function1,groupB.function4

Usuwanie funkcji

Wiersz poleceń Firebase obsługuje te polecenia i opcje umożliwiające usuwanie wcześniej wdrożonych funkcji:

  • Usuwa wszystkie funkcje pasujące do określonej nazwy we wszystkich regionach:

    firebase functions:delete FUNCTION-1_NAME

  • Usuwa określoną funkcję uruchomioną w regionie innym niż domyślny:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Usuwa więcej niż 1 funkcję:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Usuwa określoną grupę funkcji:

    firebase functions:delete GROUP_NAME

  • Ominięcie prośby o potwierdzenie:

    firebase functions:delete FUNCTION-1_NAME --force

Konfigurowanie skryptowanych zadań przed wdrożeniem i po wdrożeniu

Aby wykonać zadania wstępnej lub końcowej implementacji, możesz połączyć skrypty powłoki z poleceniem firebase deploy. Na przykład skrypt przed wdrożeniem może przetłumaczyć kod TypeScript na JavaScript, a element wywoływania po wdrożeniu może powiadomić administratorów o nowym wdrożeniu treści witryny do Firebase Hosting.

Aby skonfigurować uchwyty przed wdrożeniem lub po wdrożeniu, dodaj skrypty bash do pliku konfiguracyjnego firebase.json. Scenariusze krótkich tekstów możesz zdefiniować bezpośrednio w pliku firebase.json lub odwoływać się do innych plików w katalogu projektu.

Na przykład poniższy skrypt to wyrażenie firebase.json dla zadania po wdrożeniu, które wysyła wiadomość do Slacka po pomyślnym wdrożeniu do Firebase Hosting.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

Plik skryptu messageSlack.sh znajduje się w katalogu projektu i wygląda tak:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Możesz skonfigurować predeploy i postdeploy dla dowolnych zasobów, które możesz wdrożyć. Pamiętaj, że uruchomienie polecenia firebase deploy uruchamia wszystkie zadania przed wdrożeniem i po jego zakończeniu zdefiniowane w pliku firebase.json. Aby uruchomić tylko zadania powiązane z konkretną usługą Firebase, użyj poleceń częściowego wdrożenia.

Zarówno predeploy, jak i postdeploy wyświetlają w terminalu standardowe dane wyjściowe i strumień błędów skryptów. W przypadku niepowodzenia:

  • Jeśli nie uda się uruchomić przedwdrożeniowego haka zgodnie z oczekiwaniami, wdrożenie zostanie anulowane.
  • Jeśli wdrożenie nie powiedzie się z jakiegokolwiek powodu, nie zostaną uruchomione żadne haka po wdrożeniu.

Zmienne środowiskowe

W skryptach uruchamianych w punktach zaczepienia przed wdrożeniem i po wdrożeniu dostępne są te zmienne środowiskowe:

  • $GCLOUD_PROJECT: identyfikator aktywnego projektu
  • $PROJECT_DIR: katalog główny zawierający plik firebase.json
  • $RESOURCE_DIR: (dotyczy tylko skryptów hostingfunctions) lokalizacja katalogu zawierającego zasoby Hosting lub Cloud Functions do wdrożenia

Zarządzanie wieloma instancjami Realtime Database

Projekt Firebase może mieć wiele instancji Firebase Realtime Database. Domyślnie polecenia wiersza poleceń działają z domyślną instancją bazy danych.

Możesz jednak wchodzić w interakcje z niedomyślnym wystąpieniem bazy danych, używając flagi --instance DATABASE_NAME. Flaga --instance jest obsługiwana przez te polecenia:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Informacje o poleceniach

Polecenia administracyjne w interfejsie wiersza poleceń

Polecenie Opis
pomoc Wyświetla informacje o CLI lub konkretnych poleceniach.
init Powiązanie i konfigurowanie nowego projektu Firebase w bieżącym katalogu. To polecenie tworzy w bieżącym katalogu plik konfiguracji firebase.json.
login uwierzytelnia wiersz poleceń na koncie Firebase. Wymaga dostępu do przeglądarki internetowej.
Aby zalogować się w interfejsie wiersza poleceń w środowiskach zdalnych, które nie zezwalają na dostęp do localhost, użyj flagi --no-localhost.
login:ci Generuje token uwierzytelniający do użycia w środowiskach nieinterakcyjnych.
Wyloguj się Wylogowuje wiersz poleceń z Twojego konta Firebase.
open Otwiera przeglądarkę z odpowiednimi zasobami projektu.
projects:list Wyświetla listę wszystkich projektów Firebase, do których masz dostęp.
use Ustawia aktywny projekt Firebase dla wiersza poleceń.
Zarządza aliasami projektów.

Polecenia zarządzania projektem

Polecenie Opis
zarządzanie projektami Firebase,
projects:addfirebase Dodaje zasoby Firebase do istniejącego projektu Google Cloud.
projects:create Tworzy nowy projekt Google Cloud, a potem dodaje do niego zasoby Firebase.
projects:list Wyświetla listę wszystkich projektów Firebase, do których masz dostęp.
zarządzanie aplikacjami Firebase (iOS, Android, internet);
apps:create Tworzy nową aplikację Firebase w aktywnej aplikacji.
apps:list Wyświetla listę zarejestrowanych aplikacji Firebase w aktywnym projekcie.
apps:sdkconfig Wypisuje konfigurację usług Google w aplikacji Firebase.
setup:web Wycofane. Zamiast tego użyj polecenia apps:sdkconfig i jako argument platformy podaj wartość web.
Wypisuje konfigurację usług Google w aplikacji internetowej Firebase.
Zarządzanie identyfikatorami SHA certyfikatów (tylko Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Dodaje określony skrót SHA certyfikatu do określonej aplikacji Firebase na Androida.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Usuwa z wybranej aplikacji Firebase na Androida określony hasz certyfikatu SHA.
apps:android:sha:list \
FIREBASE_APP_ID
Wyświetla hasze kodów SHA certyfikatu dla określonej aplikacji Firebase na Androida.

Wdrażanie i rozwijanie lokalnie

Te polecenia umożliwiają wdrażanie witryny Firebase Hosting i wchodzenie z nią w interakcje.

Polecenie Opis
wdrażanie Wdraża kod i zasoby z katalogu projektu do aktywnego projektu. W przypadku Firebase Hosting wymagany jest plik konfiguracji firebase.json.
serve (obsługuj) Uruchamia lokalny serwer WWW z konfiguracją Firebase Hosting. W przypadku Firebase Hosting wymagany jest plik konfiguracji firebase.json.

App Distribution poleceń

Polecenie Opis
appdistribution:distribute \
--app FIREBASE_APP_ID
udostępnia kompilację testerom.
appdistribution:testers:add Dodaje testerów do projektu.
appdistribution:testers:remove Usuwa testerów z projektu.

App Hosting poleceń

Polecenie Opis
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
Tworzy kolekcję zarządzanych zasobów powiązanych z jednym kodem źródłowym, która stanowi backend App Hosting. Opcjonalnie określ istniejącą aplikację internetową Firebase za pomocą jej identyfikatora.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Pobiera określone szczegóły, w tym publiczny adres URL, backendu.
apphosting:backends:list \
--project PROJECT_ID
Pobiera listę wszystkich aktywnych backendów powiązanych z projektem.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Usuwa backend z projektu.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Eksportuje obiekty tajne do użycia w emulacji aplikacji.
Domyślnie są to obiekty tajne przechowywane w pliku apphosting.yaml, lub --secrets, aby określić dowolne środowisko, w którym znajduje się odpowiedni plik apphosting.ENVIRONMENT_NAME.yaml.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Tworzy wdrażanie uruchamiane ręcznie.
Opcjonalnie określ najnowsze zatwierdzenie gałęzi lub konkretne zatwierdzenie. Jeśli nie ma żadnych opcji, wyświetla listę gałęzi do wyboru.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
Przechowuje materiały tajne w usłudze Secret Manager.
Opcjonalnie podaj ścieżkę do pliku, z którego mają być odczytywane dane tajne. Ustaw na _, aby odczytać dane tajne ze standardowego wejścia.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
Przyznaje kontu usługi w zapleczu dostęp do podanego obiektu tajnego, aby App Hosting mogło z niego korzystać w czasie kompilacji lub wykonywania.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Pobiera metadane obiektu tajnego i jego wersji.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
Uzyskiwanie dostępu do wartości obiektu tajnego na podstawie obiektu tajnego i jego wersji. Domyślnie uzyskuje dostęp do najnowszej wersji.

Authentication (polecenia dotyczące zarządzania użytkownikami)

Polecenie Opis
auth:export Eksportuje konta użytkowników aktywnego projektu do pliku JSON lub CSV. Więcej informacji znajdziesz na stronie auth:import i auth:export.
auth:import Importuje konta użytkowników z pliku JSON lub CSV do aktywnego projektu. Więcej informacji znajdziesz na stronie auth:import i auth:export.

Cloud Firestore poleceń

Polecenie Opis
firestore:locations

Lista dostępnych lokalizacji bazy danych Cloud Firestore.

firestore:databases:create DATABASE_ID

Utwórz instancję bazy danych w trybie natywnym w projekcie Firebase.

Polecenie przyjmuje te flagi:

  • --location <region name>, aby określić lokalizację wdrożenia bazy danych. Pamiętaj, że możesz uruchomić polecenie firebase firestore:locations, aby wyświetlić listę dostępnych lokalizacji. Wymagany.
  • --delete-protection <deleteProtectionState> do zezwolenia na usunięcie określonej bazy danych lub uniemożliwienia tego. Prawidłowe wartości to ENABLED lub DISABLED. Domyślna wartość to DISABLED.
  • --point-in-time-recovery <PITRState>: określenie, czy odzyskiwanie do określonego momentu jest włączone. Prawidłowe wartości to ENABLED lub DISABLED. Domyślna wartość to DISABLED. Opcjonalnie.
firestore:databases:list

Wyświetl listę baz danych w projekcie Firebase.

firestore:databases:get DATABASE_ID

Pobierz konfigurację bazy danych dla określonej bazy danych w projekcie Firebase.

firestore:databases:update DATABASE_ID

Zaktualizuj konfigurację bazy danych określonej w projekcie Firebase.

Wymagane jest podanie co najmniej 1 flagi. Polecenie przyjmuje te flagi:

  • --delete-protection <deleteProtectionState> do zezwolenia na usunięcie określonej bazy danych lub uniemożliwienia tego. Prawidłowe wartości to ENABLED lub DISABLED. Domyślna wartość to DISABLED.
  • --point-in-time-recovery <PITRState>: określenie, czy odzyskiwanie do określonego momentu jest włączone. Prawidłowe wartości to ENABLED lub DISABLED. Domyślna wartość to DISABLED. Opcjonalnie.
firestore:databases:delete DATABASE_ID

Usuń bazę danych w projekcie Firebase.

firestore:indexes

Wyświetla listę indeksów bazy danych w Twoim projekcie Firebase.

Polecenie przyjmuje ten parametr:

  • --database DATABASE_ID – podanie nazwy bazy danych, dla której mają być wyświetlane indeksy. Jeśli nie podasz żadnej wartości, indeksy będą wyświetlane dla domyślnej bazy danych.
firestore:delete

Usuwa dokumenty z bazy danych aktywnego projektu. Za pomocą interfejsu wiersza poleceń możesz usunąć wszystkie dokumenty w kolekcji.

Pamiętaj, że usuwanie danych Cloud Firestore za pomocą interfejsu wiersza poleceń powoduje koszty odczytu i usuwania. Więcej informacji znajdziesz w artykule Omówienie rozliczeń Cloud Firestore.

Polecenie przyjmuje ten parametr:

  • --database DATABASE_ID aby określić nazwę bazy danych, z której mają być usuwane dokumenty. Jeśli nie podasz tej wartości, dokumenty zostaną usunięte z domyślnej bazy danych. Opcjonalnie.

Cloud Functions for Firebase poleceń

Polecenie Opis
functions:config:clone Klonuje środowisko innego projektu w aktywnej aplikacji Firebase.
functions:config:get Pobiera istniejące wartości konfiguracji Cloud Functions aktywnego projektu.
functions:config:set przechowuje wartości konfiguracji czasu wykonywania dotyczące aktywnego projektu. Cloud Functions.
functions:config:unset Usuwa wartości z konfiguracji środowiska wykonawczego aktywnego projektu.
functions:log Czyta dzienniki z wdrożonego Cloud Functions.

Więcej informacji znajdziesz w dokumentacji konfiguracji środowiska.

Crashlytics poleceń

Polecenie Opis
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Generuje unikalny identyfikator pliku mapowania w wybranym pliku zasobu Androida (XML).
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Przesyła plik mapowania (TXT) zgodny z Proguardem dla tej aplikacji i kojarzy go z identyfikatorem pliku mapowania zadeklarowanym w wybranym pliku zasobu Androida (XML).
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Tworzy plik symboli zgodny z Crashlytics na potrzeby obsługi awarii biblioteki natywnych na Androidzie i przesyła go na serwery Firebase.

Data Connect poleceń

Te polecenia i ich przypadki użycia są opisane bardziej szczegółowo w Data Connectprzewodniku po interfejsie wiersza poleceń.

Polecenie Opis
dataconnect:services:list Wyświetla listę wszystkich Data Connect usług wdrożonych w Twoim projekcie Firebase.
dataconnect:sql:diff \
SERVICE_ID
Wyświetla różnice między schematem lokalnym Data Connect a schematem bazy danych Cloud SQL dla wybranej usługi.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Migruje schemat bazy danych Cloud SQL, aby pasował do lokalnego schematu.Data Connect
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Przypisuje rolę SQL do adresu e-mail określonego użytkownika lub konta usługi.
W przypadku flagi --role rola SQL do przyznania to:owner, writer lub reader.
W przypadku flagi --email podaj adres e-mail użytkownika lub konta usługi, któremu chcesz przypisać rolę.
dataconnect:sdk:generate Generuje typowane pakiety SDK dla Twoich wtyczek Data Connect.

Extensions poleceń

Polecenie Opis
ext Wyświetla informacje o korzystaniu z poleceń Firebase Extensions.
Wyświetla instancje rozszerzenia zainstalowane w aktywnej aplikacji.
ext:configure \
EXTENSION_INSTANCE_ID
Zmienia konfigurację wartości parametrów instancji rozszerzenia w pliku manifestu rozszerzenia.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Wyświetla szczegółowe informacje o rozszerzeniu.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Dodaje nową instancję rozszerzenia do pliku manifestu rozszerzenia.
ext:list Wyświetla wszystkie instancje rozszerzenia zainstalowane w projekcie Firebase.
Wypisuje identyfikator instancji każdego rozszerzenia.
ext:uninstall \
EXTENSION_INSTANCE_ID
Usuwa instancję rozszerzenia z pliku manifestu rozszerzenia.
ext:update \
EXTENSION_INSTANCE_ID
Aktualizuje instancję rozszerzenia do najnowszej wersji w pliku manifestu rozszerzenia.
ext:export Eksportuje wszystkie zainstalowane instancje rozszerzenia z Twojego projektu do pliku manifestu rozszerzenia.

Extensions polecenia wydawcy

Polecenie Opis
ext:dev:init Inicjowanie szkieletu bazy kodu nowego rozszerzenia w bieżącym katalogu.
ext:dev:list \
PUBLISHER_ID
Wyświetla listę wszystkich rozszerzeń przesłanych przez wydawcę.
ext:dev:register Rejestruje projekt Firebase jako projekt wydawcy rozszerzeń.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Wycofa wersje rozszerzenia, które pasują do predykatu wersji.
Zdanie predykatowe wersji może być pojedynczą wersją (np. 1.0.0) lub zakresem wersji (np. >1.0.0).
Jeśli nie ma zdania predykatu wersji, użytkownik odrzuca wszystkie wersje danego rozszerzenia.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Cofnięcie wycofania wersji rozszerzenia, które pasują do predykatu wersji.
Atrybut version może być pojedynczą wersją (np. 1.0.0) lub zakresem wersji (np. >1.0.0).
Jeśli nie podano atrybutu version, undeprecates all versions of that extension.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Przesyła nową wersję rozszerzenia.
ext:dev:usage \
PUBLISHER_ID
Wyświetla liczbę instalacji i dane o korzystaniu z rozszerzeń przesłanych przez wydawcę.

Hosting poleceń

Polecenie Opis
hosting:disable

Przestaje kierować ruch Firebase Hosting do aktywnego projektu Firebase.

Po wykonaniu tego polecenia w adresie Hosting projektu pojawi się komunikat „Strona nie znaleziona”.

zarządzanie witrynami Hosting,
firebase hosting:sites:create \
SITE_ID

Tworzy nową witrynę Hosting w aktywnym projekcie Firebase przy użyciu określonego parametru SITE_ID

(Opcjonalnie) Określ istniejącą aplikację internetową Firebase, którą chcesz powiązać z nową witryną, przekazując ten parametr:--app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Usunięcie określonej witryny Hosting

Przed usunięciem witryny interfejs wiersza poleceń wyświetla prośbę o potwierdzenie.

(Opcjonalnie) Pomiń prośbę o potwierdzenie, przekazując te flagi: -f lub --force

firebase hosting:sites:get \
SITE_ID

Pobiera informacje o wybranym Hosting

firebase hosting:sites:list

Wyświetla wszystkie witryny Hosting w aktywności projektu Firebase

Zarządzanie kanałami podglądu
firebase hosting:channel:create \
CHANNEL_ID

Tworzy nowy kanał podglądu w domyślnej witrynie Hosting, używając określonego CHANNEL_ID

To polecenie nie jest wdrażane na kanale.

firebase hosting:channel:delete \
CHANNEL_ID

usuwa określony kanał podglądu.

Nie możesz usunąć kanału na żywo witryny.

firebase hosting:channel:deploy \
CHANNEL_ID

Wdraża Twoje treści i konfigurację Hosting na określony kanał podglądu.

Jeśli kanał podglądu nie istnieje jeszcze, to polecenie utworzy go na stronie domyślnej Hosting, zanim wdrożysz go na kanale.

firebase hosting:channel:list Wyświetla wszystkie kanały (w tym kanał „na żywo”) w witrynie domyślnej Hosting.
firebase hosting:channel:open \
CHANNEL_ID
Otwiera przeglądarkę na wskazany adres URL kanału lub zwraca ten adres, jeśli otwarcie go w przeglądarce nie jest możliwe
Klonowanie wersji
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Klonuje ostatnio wdrożony wariant na określonym kanale „source” (źródło) i przesyła go na określony kanał „target” (docelowy).

To polecenie wdraża również na określony „docelowy” kanał. Jeśli kanał „target” nie istnieje jeszcze, to polecenie utworzy nowy kanał podglądu w witrynie Hosting „target” przed wdrożeniem na tym kanale.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Klonuje określoną wersję na określonym kanale „docelowym”.

To polecenie wdraża również na określony „docelowy” kanał. Jeśli kanał „target” nie istnieje jeszcze, to polecenie utworzy nowy kanał podglądu w witrynie Hosting „target” przed wdrożeniem na tym kanale.

VERSION_ID znajdziesz w panelu Hosting konsoli Firebase.

Realtime Database poleceń

Pamiętaj, że możesz utworzyć początkową, domyślną instancję Realtime Database w konsoli Firebase lub za pomocą ogólnego firebase initprzepływu pracy lub konkretnego firebase init databaseprzepływu.

Po utworzeniu instancji możesz nimi zarządzać zgodnie z informacjami podanymi w artykule Zarządzanie wieloma instancjami Realtime Database.

Polecenie Opis
database:get Pobiera dane z bazy danych aktywnego projektu i wyświetla je w formacie JSON. Obsługuje zapytania dotyczące zindeksowanych danych.
database:instances:create Tworzy instancję bazy danych o określonej nazwie. Akceptuje opcję --location tworzenia bazy danych w określonym regionie. Nazwy regionów, których można używać z tą opcją, znajdziesz w sekcji wybieranie lokalizacji dla projektu. Jeśli w przypadku bieżącego projektu nie ma instancji bazy danych, pojawi się prośba o uruchomienie procesu firebase init, aby utworzyć instancję.
database:instances:list Wyświetla listę wszystkich instancji baz danych w tym projekcie. Akceptuje opcję --location wyświetlania baz danych w określonym regionie. Nazwy regionów, których można używać z tą opcją, znajdziesz w sekcji wybieranie lokalizacji dla projektu.
database:profile Tworzy profil operacji w bazie danych aktywnego projektu. Więcej informacji znajdziesz w sekcji Realtime Database Typy operacji.
database:push Przesyła nowe dane na listę w określonym miejscu w bazie danych aktywnego projektu. Pobiera dane z pliku, standardowego wejścia lub argumentu wiersza poleceń.
database:remove Usuwa wszystkie dane w określonym miejscu w bazie danych aktywnego projektu.
database:set Zastępuje wszystkie dane w określonym miejscu w bazie danych aktywnego projektu. Pobiera dane z pliku, standardowego wejścia lub argumentu wiersza poleceń.
database:update Wykonywanie częściowej aktualizacji w określonym miejscu w bazie danych aktywnego projektu. Pobiera dane z pliku, standardowego wejścia lub argumentu wiersza poleceń.

Remote Config poleceń

Polecenie Opis
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Wyświetla 10 najnowszych wersji szablonu. Określ wartość 0, aby zwrócić wszystkie istniejące wersje, lub opcjonalnie prześlij opcję --limit, aby ograniczyć liczbę zwracanych wersji.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Pobiera szablon według wersji (domyślnie najnowszej) oraz wyświetla w tabeli grupy parametrów, parametry, nazwy warunków i wersję. Opcjonalnie możesz zapisać dane wyjściowe w określonym pliku za pomocą parametru -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Przywraca szablon Remote Config do określonej poprzedniej wersji lub do poprzedniej wersji (bieżąca wersja -1). Jeśli nie podasz parametru --force, przed cofnięciem zmian pojawi się prompt Y/N.