Dokumentacja interfejsu wiersza poleceń Firebase

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

Przed użyciem interfejsu wiersza poleceń Firebase skonfiguruj projekt Firebase.

Konfigurowanie lub aktualizowanie interfejsu wiersza poleceń

Instalowanie interfejsu wiersza poleceń Firebase

Interfejs wiersza poleceń Firebase możesz zainstalować, korzystając z metody pasującej do Twojego systemu operacyjnego, poziomu doświadczenia lub przypadku użycia. Niezależnie od sposobu instalacji interfejsu wiersza poleceń masz dostęp do tych samych funkcji i polecenia firebase.

Windows macOS Linux

Windows

Możesz zainstalować interfejs wiersza poleceń Firebase dla systemu Windows, korzystając z jednej z tych opcji:

Opcja Opis Zalecane dla...
samodzielny plik binarny Pobierz samodzielny plik binarny dla interfejsu wiersza poleceń. Potem uzyskasz dostęp do pliku wykonywalnego, aby otworzyć powłokę, w której będzie można uruchomić polecenie firebase. Nowi deweloperzy

Deweloperzy, którzy nie używają lub nie znają Node.js
npm, Użyj npm (menedżera pakietów węzłów), aby zainstalować interfejs wiersza poleceń i włączyć dostępne globalnie polecenie firebase. Deweloperzy używający Node.js

samodzielny plik binarny

Aby pobrać i uruchomić plik binarny interfejsu wiersza poleceń Firebase:

  1. Pobierz plik binarny interfejsu wiersza poleceń Firebase dla systemu Windows.

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

  3. Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.

npm

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

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

  2. Zainstaluj interfejs wiersza poleceń Firebase za pomocą npm, uruchamiając następujące polecenie:

    npm install -g firebase-tools

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

  3. Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.

macOS lub Linux

Możesz zainstalować interfejs wiersza poleceń Firebase w systemie macOS lub Linux, korzystając z jednej z tych opcji:

Opcja Opis Zalecane dla...
skrypt automatycznej instalacji Uruchom pojedyncze polecenie, które automatycznie wykryje system operacyjny, pobierze najnowszą wersję interfejsu wiersza poleceń, a następnie aktywuje dostępne globalnie polecenie firebase. Nowi deweloperzy

Deweloperzy, którzy nie używają Node.js lub ich nie znają


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 zgodnie z Twoim przepływem pracy. Możliwość pełnego dostosowania przepływów pracy za pomocą interfejsu wiersza poleceń
npm, Użyj npm (menedżera pakietów węzłów), aby zainstalować interfejs wiersza poleceń i włączyć dostępne globalnie polecenie firebase. Deweloperzy używający Node.js

skrypt automatycznej instalacji

Aby zainstalować interfejs wiersza poleceń Firebase za pomocą skryptu instalacji automatycznej, 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 i włącza dostępne globalnie polecenie firebase.

  2. Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.

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

samodzielny plik binarny

Aby pobrać i uruchomić plik binarny interfejsu wiersza poleceń Firebase w wersji dla Twojego systemu operacyjnego, wykonaj te czynności:

  1. Pobierz plik binarny interfejsu wiersza poleceń Firebase dla swojego systemu operacyjnego: macOS | Linux

  2. (Opcjonalnie) Skonfiguruj dostępne globalnie polecenie firebase.

    1. Ustaw plik binarny jako wykonywalny, uruchamiając chmod +x ./firebase_tools.
    2. Dodaj ścieżkę pliku binarnego do ścieżki PATH.
  3. Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.

npm

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

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

  2. Zainstaluj interfejs wiersza poleceń Firebase za pomocą npm, uruchamiając następujące polecenie:

    npm install -g firebase-tools

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

  3. Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.

Zaloguj się i przetestuj interfejs wiersza poleceń Firebase

Po zainstalowaniu interfejsu wiersza poleceń musisz się uwierzytelnić. Potem możesz potwierdzić uwierzytelnianie, wyświetlając listę projektów Firebase.

  1. Zaloguj się do Firebase, korzystając ze swojego konta Google, uruchamiając następujące polecenie:

    firebase login

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

  2. Sprawdź, czy interfejs wiersza poleceń jest prawidłowo zainstalowany i uzyskuje dostęp do Twojego konta, dodają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.

Zaktualizuj do najnowszej wersji interfejsu wiersza poleceń

Zwykle najlepiej jest używać najnowszej wersji interfejsu wiersza poleceń Firebase.

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

Windows

  • samodzielny plik binarny: pobierz nową wersję i zastąp ją w systemie.
  • npm: uruchomienie npm install -g firebase-tools

macOS

  • automatyczny skrypt instalacji: uruchom curl -sL https://firebase.tools | upgrade=true bash
  • samodzielny plik binarny: pobierz nową wersję, a następnie zastąp ją w systemie.
  • npm: uruchomienie npm install -g firebase-tools

Linux

  • automatyczny skrypt instalacji: uruchom curl -sL https://firebase.tools | upgrade=true bash
  • samodzielny plik binarny: pobierz nową wersję, a następnie zastąp ją w systemie.
  • npm: uruchomienie npm install -g firebase-tools

Używanie interfejsu wiersza poleceń w systemach CI

Interfejs wiersza poleceń Firebase wymaga do przeprowadzenia uwierzytelniania przeglądarki, ale interfejs ten jest w pełni zgodny z CI i innymi środowiskami bez interfejsu graficznego.

  1. Zainstaluj interfejs wiersza poleceń Firebase na komputerze z przeglądarką.

  2. Rozpocznij proces logowania, uruchamiając następujące polecenie:

    firebase login:ci
  3. Otwórz podany adres URL, a następnie zaloguj się za pomocą konta Google.

  4. Wydrukuj nowy token odświeżania. Nie będzie to miało wpływu na bieżącą sesję interfejsu wiersza poleceń.

  5. Przechowuj token wyjściowy w bezpieczny, ale dostępny sposób w systemie CI.

  6. Użyj tego tokena do uruchamiania poleceń firebase. Masz do wyboru 2 opcje:

    • Opcja 1: zapisz token jako zmienną środowiskową FIREBASE_TOKEN. System automatycznie użyje tokena.

    • Opcja 2. Uruchom wszystkie polecenia firebase z flagą --token TOKEN w systemie CI.
      Oto kolejność ładowania tokenów: flaga, zmienna środowiskowa, odpowiedni projekt Firebase.

Inicjowanie projektu Firebase

Wiele typowych zadań wykonywanych za pomocą interfejsu wiersza poleceń, takich jak wdrażanie w projekcie Firebase, wymaga katalogu projektów. Aby utworzyć katalog projektu, użyj polecenia firebase init. Katalog projektu jest zwykle tym samym katalogiem co główny katalog źródłowy. Po uruchomieniu funkcji firebase init znajduje się w nim plik konfiguracji firebase.json.

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

firebase init

Polecenie firebase init przeprowadzi Cię przez proces konfigurowania katalogu projektu i niektórych usług Firebase. Podczas inicjowania projektu interfejs wiersza poleceń Firebase wyświetla prośbę o wykonanie tych zadań:

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

    W tym kroku wyświetli się prośba o ustawienie konfiguracji dla konkretnych plików dla wybranych produktów. Więcej informacji o tych konfiguracjach znajdziesz w dokumentacji konkretnej usługi (np. w artykule Hosting). Pamiętaj, że zawsze możesz uruchomić firebase init później, aby skonfigurować więcej usług Firebase.

  • Wybierz domyślny projekt Firebase.

    Ten krok wiąże bieżący katalog projektu z projektem Firebase, aby polecenia związane z projektem (np. firebase deploy) uruchamiały się w odniesieniu do odpowiedniego projektu Firebase.

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

Po zakończeniu inicjowania Firebase automatycznie tworzy te 2 pliki w katalogu głównym lokalnego katalogu aplikacji:

  • Plik konfiguracji firebase.json z listą konfiguracji projektu.

  • Plik .firebaserc, który zawiera aliasy Twojego projektu.

Plik firebase.json

Polecenie firebase init tworzy plik konfiguracji firebase.json w katalogu głównym 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ą wdrożone w projekcie Firebase. Niektóre ustawienia można zdefiniować w katalogu projektu lub w konsoli Firebase, dlatego pamiętaj o rozwiązaniu wszelkich potencjalnych konfliktów wdrożeń.

Większość opcji Hostingu Firebase możesz skonfigurować bezpośrednio w pliku firebase.json. Jednak 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 określić ustawienia tych usług, np. plik index.js dla Cloud Functions. W pliku firebase.json możesz też skonfigurować punkty zaczepienia przed wdrożeniem lub po wdrożeniu.

Poniżej znajduje się przykładowy plik firebase.json z ustawieniami domyślnymi, jeśli podczas inicjowania wybierzesz Hosting Firebase, Cloud Firestore i Cloud Functions dla Firebase (z wybranymi opcjami źródła i lintowania TypeScriptu).

{
  "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"
    ]
  }
}

Chociaż jest używany domyślnie firebase.json, możesz przekazać flagę --config PATH, aby określić alternatywny plik konfiguracji.

Konfiguracja wielu baz danych Cloud Firestore

Po uruchomieniu 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 reguły zabezpieczeń Cloud Firestore i pliki źródłowe indeksu baz danych. Zmodyfikuj plik za pomocą tablicy JSON z jednym 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"
        }
      ],

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

Podczas wdrażania funkcji interfejs wiersza poleceń automatycznie określa w katalogu functions listę plików, które mają być ignorowane. Uniemożliwia to wdrażanie w backendzie zbędnych plików, które mogłyby zwiększyć rozmiar danych wdrożenia.

Domyślnie ignorowana lista plików 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 pliku firebase.json, zachowaj (lub dodaj, jeśli nie ma) listę plików widoczną powyżej.

Zarządzanie aliasami projektów

Z tym samym katalogiem projektów możesz powiązać wiele projektów Firebase. Możesz na przykład używać jednego projektu Firebase do testowania, a drugiego do środowiska produkcyjnego. Korzystając z różnych środowisk projektów, możesz sprawdzać zmiany przed wdrożeniem ich w środowisku produkcyjnym. Polecenie firebase use pozwala przełączać się między aliasami oraz tworzyć nowe.

Dodaj alias projektu

Jeśli podczas inicjowania projektu wybierzesz projekt Firebase, zostanie do niego automatycznie przypisany alias default. Jeśli jednak chcesz, aby polecenia związane z projektem uruchamiały się w innym projekcie Firebase, ale nadal używałeś(-aś) tego samego katalogu projektu, uruchom to polecenie w katalogu projektu:

firebase use --add

Wyświetli się prośba o wybranie innego projektu Firebase i przypisanie do niego aliasu. Przypisania aliasów są zapisywane w pliku .firebaserc w katalogu projektu.

Używanie aliasów projektów

Aby użyć przypisanych aliasów projektu Firebase, uruchom dowolne z poniższych poleceń z katalogu projektu.

Polecenie Opis
firebase use Wyświetl listę obecnie zdefiniowanych aliasów katalogu projektu
firebase use \
PROJECT_ID|ALIAS
Kieruje wszystkie polecenia do określonego projektu Firebase.
Interfejs wiersza poleceń używa tego projektu jako obecnie „aktywnego projektu”.
firebase use --clear Usuwa aktywny projekt.

Uruchom firebase use PROJECT_ID|ALIAS, aby ustawić nowy aktywny projekt, zanim uruchomisz inne polecenia interfejsu wiersza poleceń.

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

Używany obecnie projekt możesz zastąpić, przekazując flagę --project z dowolnym poleceniem interfejsu wiersza poleceń. Na przykład: możesz skonfigurować interfejs wiersza poleceń tak, aby uruchamiał się w projekcie Firebase, któremu przypisano alias staging. Jeśli chcesz uruchomić jedno polecenie w projekcie Firebase, do którego przypisany został alias prod, możesz np. uruchomić polecenie firebase deploy --project=prod.

Element sterujący źródła i aliasy projektu

Ogólnie zalecamy sprawdzenie pliku .firebaserc w kontroli źródła, aby umożliwić zespołowi udostępnianie aliasów projektów. W przypadku projektów open source lub szablonów startowych zasadniczo nie należy jednak sprawdzać pliku .firebaserc.

Jeśli masz projekt programistyczny, który służy wyłącznie do Ciebie, możesz przekazać flagę --project przy każdym poleceniu lub uruchomić firebase use PROJECT_ID bez przypisywania aliasu do projektu Firebase.

Udostępnianie i testowanie projektu Firebase lokalnie

Przed wdrożeniem projektu Firebase w środowisku produkcyjnym możesz go wyświetlić i przetestować pod lokalnie hostowanych adresów URL. Jeśli chcesz przetestować tylko wybrane funkcje, możesz użyć listy rozdzielanej przecinkami we flagie w poleceniu firebase serve.

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

firebase serve --only hosting

Emuluj projekt za pomocą lokalnych funkcji HTTP

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

  • Aby emulować funkcje HTTP i hosting na potrzeby testowania lokalnych adresów URL, 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 z innych urządzeń lokalnych

Domyślnie firebase serve odpowiada tylko na prośby, które wysyła localhost. Oznacza to, że możesz korzystać z treści hostowanych w przeglądarce na komputerze, ale nie na innych urządzeniach w sieci. Jeśli chcesz przeprowadzić test z innego urządzenia lokalnego, użyj flagi --host w ten sposób:

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

Wdróż w projekcie Firebase

Interfejs wiersza poleceń Firebase zarządza wdrażaniem kodu i zasobów w projekcie Firebase, w tym:

  • Nowe wersje Twoich witryn Hostingu Firebase
  • Nowe, zaktualizowane lub istniejące funkcje Cloud Functions dla Firebase
  • Reguły Bazy danych czasu rzeczywistego Firebase
  • Reguły Cloud Storage dla Firebase
  • Reguły Cloud Firestore
  • Indeksy dla Cloud Firestore

Aby przeprowadzić wdrożenie w projekcie Firebase, uruchom to polecenie z katalogu projektu:

firebase deploy

Do każdego wdrożenia możesz opcjonalnie dodać komentarz. Ten komentarz będzie wyświetlać się wraz z innymi informacjami o wdrożeniu na stronie Hostingu Firebase Twojego projektu. Przykład:

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

Podczas korzystania z polecenia firebase deploy pamiętaj o tych kwestiach:

  • Aby można było wdrożyć zasoby z katalogu projektu, katalog projektu musi zawierać plik firebase.json. Ten plik jest tworzony automatycznie za pomocą polecenia firebase init.

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

Konflikty wdrażania reguł zabezpieczeń

W przypadku Bazy danych czasu rzeczywistego Firebase, Cloud Storage dla Firebase i Cloud Firestore reguły zabezpieczeń możesz definiować w lokalnym katalogu projektu lub w konsoli Firebase.

Innym sposobem uniknięcia konfliktów wdrożenia jest użycie wdrożenia częściowego i definiowanie reguł tylko w konsoli Firebase.

Limity wdrożenia

Może się zdarzyć, że przekroczysz limit, który ogranicza częstotliwość lub liczbę operacji wdrażania Firebase. Na przykład podczas wdrażania bardzo dużej liczby funkcji możesz zobaczyć komunikat o błędzie HTTP 429 Quota. Aby rozwiązać takie problemy, spróbuj przeprowadzić częściowe wdrożenie.

Wycofywanie wdrożenia

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

Obecnie nie można wycofywać wersji reguł zabezpieczeń Bazy danych czasu rzeczywistego Firebase, Cloud Storage dla Firebase ani Cloud Firestore.

Wdrażanie określonych usług Firebase

Jeśli chcesz wdrożyć tylko określone usługi lub funkcje Firebase, możesz użyć listy oddzielonej przecinkami we fladze w poleceniu firebase deploy. Na przykład poniższe polecenie wdraża treści Hostingu Firebase i reguły zabezpieczeń Cloud Storage.

firebase deploy --only hosting,storage

W tabeli poniżej znajdziesz usługi i funkcje dostępne do 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 Hostingu Firebase
--only database Reguły Bazy danych czasu rzeczywistego Firebase
--only storage Reguły Cloud Storage dla Firebase
--only firestore Reguły Cloud Firestore i indeksy dla wszystkich skonfigurowanych baz danych
--only functions Cloud Functions dla Firebase (to możliwe bardziej szczegółowe wersje tej flagi)

Wdrażanie określonych funkcji

Podczas wdrażania funkcji możesz kierować reklamy na określone funkcje. Przykład:

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

Możesz też pogrupować funkcje w grupy eksportu w pliku /functions/index.js. Funkcje grupowania pozwalają wdrożyć wiele funkcji za pomocą jednego polecenia.

Na przykład możesz napisać te funkcje, by zdefiniować groupA i groupB:

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

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 dostępne w elemencie groupB. Przykład:

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

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 z katalogu projektu:

firebase deploy --only functions:groupA

Możesz też ustawić kierowanie na konkretną funkcję w grupie, uruchamiając to polecenie:

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

Usuwanie funkcji

Interfejs wiersza poleceń Firebase obsługuje następujące polecenia i opcje usuwania wcześniej wdrożonych funkcji:

  • Usuwa wszystkie funkcje, które pasują do określonej nazwy we wszystkich regionach:

    firebase functions:delete FUNCTION-1_NAME

  • Usuwa określoną funkcję działającą 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

  • Pomija prośbę o potwierdzenie:

    firebase functions:delete FUNCTION-1_NAME --force

Konfigurowanie zadań skryptów wykonywanych przed wdrożeniem i po wdrożeniu

Możesz połączyć skrypty powłoki z poleceniem firebase deploy, aby wykonywać zadania przed wdrożeniem lub po wdrożeniu. Skrypt wstępnego wdrożenia może na przykład przekształcać kod TypeScript do JavaScriptu, a haczyk po wdrożeniu może powiadamiać administratorów o wdrażaniu nowych treści witryny w Hostingu Firebase.

Aby skonfigurować punkty zaczepienia przed wdrożeniem lub po wdrożeniu, dodaj skrypty bash do pliku konfiguracji firebase.json. Krótkie skrypty możesz definiować bezpośrednio w pliku firebase.json albo odwołać się do innych plików znajdujących się w katalogu projektu.

Na przykład poniższy skrypt jest wyrażeniem firebase.json zadania po wdrożeniu, które wysyła wiadomość do Slacka po udanym wdrożeniu do Hostingu Firebase.

"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ć punkty zaczepienia predeploy i postdeploy dla dowolnych zasobów, które możesz wdrożyć. Pamiętaj, że uruchomienie polecenia firebase deploy aktywuje wszystkie zadania przed wdrożeniem i po wdrożeniu zdefiniowane w pliku firebase.json. Aby uruchomić tylko te zadania związane z konkretną usługą Firebase, użyj poleceń częściowych wdrożenia.

Zarówno haczyki predeploy, jak i postdeploy wyświetlają w terminalu standardowe dane wyjściowe i strumieni błędów skryptów. W przypadku awarii pamiętaj o tych kwestiach:

  • Jeśli punkt zaczepienia przed wdrożeniem nie zakończy się zgodnie z oczekiwaniami, wdrożenie zostanie anulowane.
  • Jeśli wdrożenie nie powiedzie się z jakiegoś powodu, punkty zaczepienia po wdrożeniu nie zostaną aktywowane.

Zmienne środowiskowe

W skryptach działających 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: (tylko w przypadku skryptów hosting i functions) lokalizacja katalogu zawierającego zasoby Hostingu lub Cloud Functions do wdrożenia

Zarządzanie wieloma instancjami bazy danych czasu rzeczywistego

Projekt Firebase może mieć wiele instancji Bazy danych czasu rzeczywistego Firebase. Domyślnie polecenia interfejsu wiersza poleceń współdziałają z domyślną instancją bazy danych.

Możesz jednak korzystać z instancji bazy danych innej niż domyślna, używając flagi --instance DATABASE_NAME. Te polecenia obsługują flagę --instance:

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

Dokumentacja polecenia

Polecenia administracyjne interfejsu wiersza poleceń

Polecenie Opis
pomoc Wyświetla informacje pomocy dotyczące interfejsu wiersza poleceń lub konkretnych poleceń.
init, Przypisuje i konfiguruje nowy projekt Firebase w bieżącym katalogu. To polecenie tworzy plik konfiguracji firebase.json w bieżącym katalogu.
login Uwierzytelnia interfejs wiersza poleceń na Twoim koncie Firebase. Wymaga dostępu do przeglądarki.
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 uwierzytelniania do użytku w środowiskach nieinteraktywnych.
wyloguj się Wylogowuje interfejs wiersza poleceń z konta Firebase.
otwórz Otwiera w przeglądarce odpowiednie zasoby projektu.
projects:lista Wyświetla listę wszystkich projektów Firebase, do których masz dostęp.
użyj Konfiguruje aktywny projekt Firebase na potrzeby interfejsu wiersza poleceń.
Zarządza aliasami projektów.

Polecenia zarządzania projektem

Polecenie Opis
Zarządzanie projektami Firebase
projects:dodajfirebase Dodaje zasoby Firebase do istniejącego projektu Google Cloud.
projects:utwórz Tworzy nowy projekt Google Cloud, a następnie dodaje do niego zasoby Firebase.
projects:lista 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 aktywnym projekcie.
apps:list Wyświetla listę zarejestrowanych aplikacji Firebase w aktywnym projekcie.
apps:sdkconfig Drukuje konfigurację usług Google w aplikacji Firebase.
konfiguracja:internet Wycofano. Zamiast tego użyj apps:sdkconfig i podaj web jako argument platformy.
Wyświetla konfigurację usług Google aplikacji internetowej Firebase.
Zarządzanie haszami certyfikatów SHA (tylko Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Dodaje określony hasz certyfikatu SHA do określonej aplikacji Firebase na Androida.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Usuwa podany hasz certyfikatu SHA z określonej aplikacji Firebase na Androida.
apps:android:sha:list \
FIREBASE_APP_ID
Zawiera listę skrótów certyfikatów SHA dla określonej aplikacji Firebase na Androida.

Wdrażanie i programowanie lokalne

Te polecenia pozwalają wdrożyć witrynę Hostingu Firebase i korzystać z niej.

Polecenie Opis
wdróż Wdraża kod i zasoby z katalogu projektu w aktywnym projekcie. W przypadku Hostingu Firebase wymagany jest plik konfiguracji firebase.json.
serwować Powoduje uruchomienie lokalnego serwera WWW z konfiguracją Hostingu Firebase. W przypadku Hostingu Firebase wymagany jest plik konfiguracji firebase.json.

Polecenia Rozpowszechniania aplikacji

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

Polecenia App Hosting

Polecenie Opis
apphosting:backends:create \
--project PROJECT_ID
--location REGION --app APP_ID
Tworzy zbiór zarządzanych zasobów połączonych z pojedynczą bazą kodu, która składa się z backendu App Hosting. Opcjonalnie wskaż istniejącą aplikację internetową Firebase, podając jej identyfikator.
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.
apphosting:secrets:set \
KEY --project PROJECT_ID
--location REGION --data-file Data file
Przechowuje materiały tajny w usłudze Secret Manager. Opcjonalnie możesz podać ścieżkę pliku, z której będą odczytywane dane obiektu tajnego. Ustaw jako _, aby odczytywać dane obiektu tajnego ze standardowych danych wejściowych.
apphosting:secrets:grantaccess \
KEY --project PROJECT_ID BACKEND_ID
--location REGION
Przyznaje kontom usługi backendu dostęp do podanego obiektu tajnego, dzięki czemu usługa App Hosting ma do niego dostęp w czasie kompilacji lub działania.
apphosting:secrets:describe \
KEY --project PROJECT_ID
Pobiera metadane obiektu tajnego i jego wersje.
firebase apphosting:secrets:access \
KEY[@version]
--project PROJECT_ID
Uzyskuje dostęp do wartości obiektu tajnego z podaną jego wersją i jego wersją. Domyślnie używana jest najnowsza wersja.

Polecenia uwierzytelniania (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.

Polecenia Cloud Firestore

Polecenie Opis
firestore:lokalizacje

Wyświetl dostępne lokalizacje bazy danych Cloud Firestore.

firestore:databases:create DATABASE_ID

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

Polecenie ma następujące flagi:

  • --location <nazwa regionu>, aby określić lokalizację wdrożenia dla bazy danych. Aby wyświetlić listę dostępnych lokalizacji, możesz uruchomić polecenie firebase Firestore:locations. Wymagany.
  • --delete-protection <deleteProtectionState>, aby umożliwić lub uniemożliwić usunięcie określonej bazy danych. Prawidłowe wartości to ENABLED lub DISABLED. Domyślna wartość to DISABLED.
  • --point-in-time-recovery <PITRState>, aby określić, 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świetlenie listy baz danych w projekcie Firebase.

firestore:databases:get DATABASE_ID

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

firestore:databases:update DATABASE_ID

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

Wymagana jest co najmniej 1 flaga. Polecenie ma następujące flagi:

  • --delete-protection <deleteProtectionState>, aby umożliwić lub uniemożliwić usunięcie określonej bazy danych. Prawidłowe wartości to ENABLED lub DISABLED. Domyślna wartość to DISABLED.
  • --point-in-time-recovery <PITRState>, aby określić, 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

usunąć bazę danych z projektu Firebase,

firestore:indexes

Wyświetlać indeksy dla bazy danych w projekcie Firebase.

Polecenie ma następującą flagę:

  • --database DATABASE_ID, aby określić nazwę bazy danych, dla której chcesz wyświetlić listę indeksów. Jeśli nie zostanie podany, na liście indeksów domyślnej bazy danych pojawią się indeksy.
firestore:delete

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

Pamiętaj, że usunięcie danych Cloud Firestore za pomocą interfejsu wiersza poleceń wiąże się z kosztami odczytu i usuwania. Więcej informacji znajdziesz w artykule o płatnościach za Cloud Firestore.

Polecenie ma następującą flagę:

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

Polecenia Cloud Functions dla Firebase

Polecenie Opis
functions:config:clone Kopiuje środowisko innego projektu do aktywnego projektu Firebase.
functions:config:get Pobiera istniejące wartości konfiguracji funkcji w Cloud Functions aktywnego projektu.
functions:config:set Przechowuje wartości konfiguracji środowiska wykonawczego dla funkcji w Cloud Functions aktywnego projektu.
functions:config:unset Usuwa wartości z konfiguracji środowiska wykonawczego aktywnego projektu.
functions:log Odczytuje logi z wdrożonych funkcji w Cloud Functions.

Więcej informacji znajdziesz w dokumentacji konfiguracji środowiska.

Polecenia Crashlytics

Polecenie Opis
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Generuje unikalny identyfikator pliku mapowania w określonym pliku zasobów 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 zgodny z ProGuard (TXT) dla tej aplikacji i wiąże go z identyfikatorem pliku mapowania zadeklarowanym w określonym pliku zasobów Androida (XML).
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Generuje plik symboli zgodny z Crashlytics na potrzeby awarii biblioteki natywnej na Androidzie i przesyła go na serwery Firebase.

Polecenia dotyczące rozszerzeń

Polecenie Opis
wewn. Wyświetla informacje o korzystaniu z poleceń Rozszerzeń w Firebase.
Wyświetla listę instancji rozszerzeń zainstalowanych w aktywnym projekcie.
ext:configure \
EXTENSION_INSTANCE_ID
Ponownie konfiguruje wartości parametrów instancji rozszerzenia w pliku manifestu rozszerzenia.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Drukuje szczegółowe informacje o rozszerzeniu.
ext:instalacja \
PUBLISHER_ID/EXTENSION_ID
Dodaje nowe wystąpienie rozszerzenia do pliku manifestu rozszerzenia.
ext:list Wyświetla listę wszystkich instancji rozszerzeń zainstalowanych w projekcie Firebase.
Wydrukuje identyfikator instancji każdego rozszerzenia.
ext:odinstaluj \
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 rozszerzeń z projektu do pliku manifestu rozszerzenia.

Polecenia wydawcy rozszerzeń

Polecenie Opis
ext:dev:init Inicjuje szkieletową bazę kodu dla nowego rozszerzenia w bieżącym katalogu.
ext:dev:list \
PUBLISHER_ID
Drukuje 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
Wycofuje wersje rozszerzenia zgodne z predykatem wersji.
Predykat wersji może być pojedynczą wersją (np. 1.0.0) lub zakresem wersji (np. >1.0.0).
Jeśli nie podasz predykatu wersji, wycofuje wszystkie wersje tego rozszerzenia.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Wycofuje wersje rozszerzenia zgodne z predykatem wersji.
Predykat wersji może być pojedynczą wersją (np. 1.0.0) lub zakresem wersji (np. >1.0.0).
Jeśli nie podasz predykatu wersji, cofa wszystkie wersje tego rozszerzenia.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Przesyła nową wersję rozszerzenia.
ext:dev:użycie \
PUBLISHER_ID
Wyświetla liczbę instalacji i dane o wykorzystaniu rozszerzeń przesłanych przez wydawcę.

Polecenia hostingu

Polecenie Opis
hosting:disable,

Przestaje obsługiwać ruch Hostingu Firebase dla aktywnego projektu Firebase.

Po uruchomieniu tego polecenia w adresie URL Hostingu Twojego projektu wyświetli się komunikat „Nie znaleziono witryny”.

Zarządzanie witrynami w hostelu
firebase hosting:sites:create \
SITE_ID

Tworzy nową witrynę w Hostingu w aktywnym projekcie Firebase za pomocą określonego zasobu (SITE_ID)

(Opcjonalnie) Wskaż istniejącą aplikację internetową Firebase, którą chcesz powiązać z nową witryną, przesyłając tę flagę: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Usuwa określoną witrynę w Hostingu

Przed usunięciem witryny w interfejsie wiersza poleceń wyświetli się prośba o potwierdzenie.

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

firebase hosting:sites:get \
SITE_ID

Pobiera informacje o określonej witrynie Hostingu

firebase hosting:sites:list

Wyświetla listę wszystkich witryn Hostingu dla aktywnego projektu Firebase

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

Tworzy nowy kanał podglądu w domyślnej witrynie Hostingu za pomocą podanego CHANNEL_ID

To polecenie nie jest wdrażane na kanale.

firebase Hosting:channel:usuń \
CHANNEL_ID

Usuwa określony kanał podglądu

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

firebase hosting:channel:deploy \
CHANNEL_ID

Wdraża Twoje treści i konfigurację z Hostingu w podanym kanale podglądu

Jeśli kanał wersji testowej jeszcze nie istnieje, to polecenie utworzy kanał w domyślnej witrynie Hostingu przed wdrożeniem w kanale.

firebase hosting:channel:list Wyświetla wszystkie kanały (w tym kanał „aktywny”) w domyślnej witrynie Hostingu
firebase hosting:channel:open \
CHANNEL_ID
Otwiera w przeglądarce adres URL określonego kanału lub zwraca URL, jeśli nie można otworzyć go w przeglądarce
Klonowanie wersji
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Kopiuje najnowszą wdrożoną wersję z określonego kanału „źródłowego” do podanego kanału „docelowego”

To polecenie zostanie też wdrożone w podanym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie utworzy nowy kanał podglądu w „docelowej” witrynie Hostingu przed wdrożeniem w kanale.

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

Kopiuje określoną wersję do określonego kanału „docelowego”

To polecenie zostanie też wdrożone w podanym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie utworzy nowy kanał podglądu w „docelowej” witrynie Hostingu przed wdrożeniem w kanale.

VERSION_ID znajdziesz w panelu Hosting w konsoli Firebase.

Polecenia Bazy danych czasu rzeczywistego

Pamiętaj, że początkową, domyślną instancję Bazy danych czasu rzeczywistego możesz utworzyć w konsoli Firebase lub za pomocą ogólnego przepływu pracy firebase init lub określonego procesu firebase init database.

Po utworzeniu instancji możesz nimi zarządzać zgodnie z opisem w artykule Zarządzanie wieloma instancjami bazy danych czasu rzeczywistego.

Polecenie Opis
database:get (baza_danych:get) Pobiera dane z bazy danych aktywnego projektu i wyświetla je w formacie JSON. Obsługa zapytań dotyczących zindeksowanych danych.
database:instances:create Tworzy instancję bazy danych o podanej nazwie instancji. Akceptuje opcję --location do tworzenia bazy danych w określonym regionie. Aby dowiedzieć się, jak używać tej opcji nazw regionów, przeczytaj artykuł o wybieraniu lokalizacji dla projektu. Jeśli w bieżącym projekcie nie ma żadnej instancji bazy danych, wyświetli się prośba o uruchomienie procesu firebase init w celu utworzenia instancji.
database:instances:list Wyświetl wszystkie instancje baz danych w tym projekcie. Akceptuje opcję --location służącą do wyświetlania listy baz danych w określonym regionie. Aby dowiedzieć się, jak używać tej opcji nazw regionów, przeczytaj artykuł o wybieraniu lokalizacji dla projektu.
database:profile Tworzy profil operacji w bazie danych aktywnego projektu. Więcej informacji znajdziesz w artykule o typach operacji w bazie danych czasu rzeczywistego.
database:push Przekazuje nowe dane na listę w określonej lokalizacji w bazie danych aktywnego projektu. Pobiera dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń.
database:remove Usuwa wszystkie dane z określonej lokalizacji w bazie danych aktywnego projektu.
database:set Zastępuje wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu. Pobiera dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń.
database:update Wykonuje częściową aktualizację w określonej lokalizacji bazy danych aktywnego projektu. Pobiera dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń.

Polecenia Zdalnej konfiguracji

Polecenie Opis
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Zawiera listę 10 ostatnich wersji szablonu. Podaj 0, aby zwrócić wszystkie istniejące wersje, lub opcjonalnie przekaż opcję --limit, aby ograniczyć liczbę zwracanych wersji.
remoteconfig:get \
--v, numer wersji VERSION_NUMBER
--o, dane wyjściowe FILENAME
Pobiera szablon według wersji (domyślnie jest to najnowsza wersja) i umieszcza w tabeli grupy parametrów, parametry oraz nazwy warunków i wersję. Opcjonalnie możesz zapisać dane wyjściowe w określonym pliku za pomocą -o, FILENAME.
remoteconfig:rollback \
--v, numer_wersji VERSION_NUMBER
--force
Przywraca szablon Zdalnej konfiguracji do określonego poprzedniego numeru lub domyślnie przywraca natychmiastową poprzednią wersję (bieżąca wersja -1). Jeśli --force nie zostanie przekroczony, przed przejściem do przywrócenia poprzedniej wersji wyświetli się prośba o T/N.