Dokumentacja wiersza poleceń Firebase

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

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

Skonfiguruj lub zaktualizuj interfejs wiersza poleceń

Instalowanie interfejsu wiersza poleceń Firebase

Interfejs wiersza poleceń Firebase możesz zainstalować za pomocą metody pasującej do Twojego 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

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 interfejsu wiersza poleceń. Następnie możesz uzyskać dostęp do pliku wykonywalnego, aby otworzyć powłokę, w której możesz uruchomić polecenie firebase. Nowi deweloperzy

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

samodzielny plik binarny

Aby pobrać i uruchomić plik binarny interfejsu wiersza poleceń Firebase, wykonaj te czynności:

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

  2. Otwórz plik binarny, aby otworzyć powłokę, w której można uruchomić polecenie firebase.

  3. Przejdź do logowania się i testowania interfejsu wiersza poleceń.

npm

Aby użyć npm (menedżera pakietów węzłów) do zainstalowania interfejsu wiersza poleceń Firebase, wykonaj te czynności:

  1. Zainstaluj Node.js przy użyciu nvm-windows (menedżera wersji węzłów). Node.js zainstaluje automatycznie narzędzia do poleceń npm.

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

    npm install -g firebase-tools

    Włącza ono dostępne globalnie polecenie firebase.

  3. Przejdź do logowania się i testowania interfejsu wiersza poleceń.

macOS lub Linux

Interfejs wiersza poleceń Firebase możesz zainstalować na macOS lub Linux, korzystając z jednej z tych opcji:

Opcja Opis Zalecane dla...
skrypt automatycznej instalacji Uruchom jedno polecenie, które automatycznie wykrywa system operacyjny, pobiera najnowszą wersję interfejsu wiersza poleceń, a następnie włącza dostępne globalnie polecenie firebase. Nowi deweloperzy

Programiści, którzy nie korzystają z Node.js lub nie znają się na tym,

Automatyczne wdrożenia w środowisku CI/CD
samodzielny plik binarny Pobierz samodzielny plik binarny interfejsu wiersza poleceń. Następnie możesz skonfigurować i uruchomić plik binarny odpowiednio do swojego przepływu pracy. W pełni konfigurowalne przepływy 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. Programiści korzystający z Node.js

skrypt automatycznej instalacji

Aby zainstalować interfejs wiersza poleceń Firebase za pomocą skryptu automatycznego 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. Przejdź do logowania się i testowania interfejsu wiersza poleceń.

Więcej przykładów i informacji o automatycznym skrypcie instalacji 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 swoim systemie operacyjnym, wykonaj te czynności:

  1. Pobierz plik binarny wiersza poleceń Firebase na swój system operacyjny: macOS | Linux

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

    1. Zmień plik binarny na wykonywalny, uruchamiając polecenie chmod +x ./firebase_tools.
    2. Dodaj ścieżkę pliku binarnego do ścieżki PATH.
  3. Przejdź do logowania się i testowania interfejsu wiersza poleceń.

npm

Aby użyć npm (menedżera pakietów węzłów) do zainstalowania interfejsu wiersza poleceń Firebase, wykonaj te czynności:

  1. Zainstaluj Node.js przy użyciu nvm (menedżera wersji węzłów).
    Instalacja Node.js automatycznie instaluje narzędzia poleceń npm.

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

    npm install -g firebase-tools

    Włącza ono dostępne globalnie polecenie firebase.

  3. Przejdź do logowania się i testowania interfejsu wiersza poleceń.

Zaloguj się i przetestuj interfejs wiersza poleceń Firebase

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

  1. Zaloguj się do Firebase za pomocą swojego konta Google, uruchamiając to polecenie:

    firebase login

    To polecenie łączy maszynę lokalną z Firebase i przyznaje Ci dostęp do projektów Firebase.

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

Zaktualizuj do najnowszej wersji interfejsu wiersza poleceń

Zwykle chcesz 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ę, a potem zastąp ją w swoim systemie;
  • npm: uruchomienie npm install -g firebase-tools

macOS

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

Linux

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

Używanie interfejsu wiersza poleceń z systemami CI

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

  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, a następnie zaloguj się, używając 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żywaj tego tokena do uruchamiania poleceń firebase. Możesz użyć jednej z tych 2 opcji:

    • Opcja 1. Zapisz token jako zmienną środowiskową FIREBASE_TOKEN. Twój system automatycznie użyje tokena.

    • Opcja 2: uruchom w systemie CI wszystkie polecenia firebase z flagą --token TOKEN.
      Oto kolejność wczytywania tokena: flaga, zmienna środowiskowa, wymagany projekt Firebase.

Inicjowanie projektu Firebase

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

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

firebase init

Polecenie firebase init przeprowadzi Cię przez proces konfigurowania katalogu projektów i niektórych usług Firebase. Podczas inicjowania projektu interfejs wiersza poleceń Firebase poprosi o wykonanie tych zadań:

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

    W tym kroku pojawi się prośba o ustawienie konfiguracji pod kątem konkretnych plików dla wybranych produktów. Więcej informacji o tych konfiguracjach znajdziesz w dokumentacji konkretnej usługi (np. 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, dzięki czemu polecenia związane z tym projektem (np. firebase deploy) uruchamiają się w odpowiednim projekcie Firebase.

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

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

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

  • Plik .firebaserc zawierający aliases Twojego 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 zostaną wdrożone w projekcie Firebase. Niektóre ustawienia można zdefiniować w katalogu projektu lub w konsoli Firebase, dlatego pamiętaj o rozwiązywaniu wszelkich potencjalnych konfliktów wdrażania.

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żna zdefiniować ustawienia tych usług, np. plik index.js w przypadku Cloud Functions. Możesz też skonfigurować punkty zaczepienia przed wdrożeniem lub po wdrożeniu w pliku firebase.json.

Poniżej znajdziesz 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 TypeScript i Litt).

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

Gdy domyślnie używany jest 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ł pojedynczy 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ć różne reguły zabezpieczeń Cloud Firestore i pliki źródłowe indeksu bazy danych z każdą bazą danych. Zmodyfikuj plik za pomocą tablicy JSON, dodając po 1 wpisie na każdą bazę 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 w Cloud Functions, które mają być ignorowane przy wdrażaniu

W czasie wdrażania funkcji interfejs wiersza poleceń automatycznie określa listę plików w katalogu functions, które mają być ignorowane. Zapobiega to wdrażaniu w backendzie niepotrzebnych plików, które mogłyby zwiększyć rozmiar danych wdrożenia.

Lista plików, które są domyślnie ignorowane, w formacie JSON:

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

Jeśli w usłudze firebase.json dodasz własne wartości niestandardowe dla pola ignore, pamiętaj, aby zachować powyższą listę plików (lub ją dodać, jeśli jej brakuje).

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 środowiska testowego, a drugiego do środowiska produkcyjnego. Używając różnych środowisk projektu, możesz zweryfikować zmiany przed wdrożeniem 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, automatycznie zostanie mu przypisany alias domeny default. Jeśli jednak chcesz zezwolić na wykonywanie poleceń związanych z konkretnym projektem w innym projekcie Firebase, ale nadal korzystać z tego samego katalogu, uruchom to polecenie z katalogu projektów:

firebase use --add

To polecenie wyświetla prośbę o wybranie innego projektu Firebase i przypisanie do niego aliasu. Przypisania aliasów są zapisywane w pliku .firebaserc w katalogu projektu.

Użyj aliasów projektu

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

Polecenie Opis
firebase use Wyświetl listę obecnie zdefiniowanych aliasów katalogu projektów
firebase use \
PROJECT_ID|ALIAS
Kieruje wszystkie polecenia do uruchomienia w określonym projekcie Firebase.
Interfejs wiersza poleceń używa tego projektu jako obecnie „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 zastąpić projekt używany jako obecnie aktywny projekt, przekazując flagę --project za pomocą dowolnego polecenia interfejsu wiersza poleceń. Przykład: możesz skonfigurować interfejs wiersza poleceń tak, aby uruchamiał się w projekcie Firebase, do którego przypisany jest alias staging. Jeśli chcesz wykonać jedno polecenie w projekcie Firebase, do którego przypisany jest alias prod, użyj na przykład polecenia firebase deploy --project=prod.

Kontrola źródła i aliasy projektów

Ogólnie rzecz biorąc, należy sprawdzić plik .firebaserc w kontroli źródła, aby umożliwić zespołowi udostępnianie aliasów projektu. Jednak w przypadku projektów open source i szablonów startowych zasadniczo nie sprawdzaj pliku .firebaserc.

Jeśli masz projekt programistyczny tylko do użytku, możesz przekazać flagę --project przy każdym poleceniu lub uruchomić firebase use PROJECT_ID bez przypisywania aliasu do projektu Firebase.

Udostępniaj i testuj projekt Firebase lokalnie

Zanim wdrożysz projekt Firebase w środowisku produkcyjnym, możesz go wyświetlić i przetestować na hostowanych lokalnie adresach URL. Jeśli chcesz testować tylko wybrane cechy, możesz użyć listy oddzielonej przecinkami w flagi w poleceniu firebase serve.

Jeśli chcesz wykonać jedno z tych zadań, uruchom to polecenie z katalogu głównego lokalnego katalogu projektu:

firebase serve --only hosting

Emuluj projekt za pomocą lokalnych funkcji HTTP

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

  • Aby emulować funkcje HTTP i hosting do testowania na lokalnych adresach 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

Przeprowadź test z innych urządzeń lokalnych

Domyślnie firebase serve odpowiada tylko na żądania od localhost. Oznacza to, że będziesz mieć dostęp do hostowanych treści w przeglądarce na komputerze, ale nie na innych urządzeniach w Twojej sieci. Jeśli chcesz przeprowadzić test na innych urządzeniach lokalnych, użyj flagi --host w ten sposób:

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 zasobów w projekcie Firebase i obejmuje:

  • 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 Cloud Firestore

Aby wdrożyć w projekcie Firebase, uruchom to polecenie z 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 stronie Hostingu Firebase Twojego projektu. Na 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. Jest on tworzony automatycznie przez polecenie firebase init.

  • Domyślnie firebase deploy tworzy wersję dla wszystkich zasobów, które można wdrożyć w katalogu projektu. Aby wdrożyć określone usługi lub funkcje Firebase, użyj 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żna definiować w lokalnym katalogu projektu lub w konsoli Firebase.

Innym sposobem uniknięcia konfliktów we wdrożeniu jest skorzystanie z częściowego wdrożenia i zdefiniowanie reguł tylko w konsoli Firebase.

Limity wdrożeń

Możliwe, że (choć mało prawdopodobne) przekroczysz limit, który ogranicza częstotliwość lub liczbę operacji wdrażania Firebase. Jeśli na przykład wdrażasz bardzo dużą liczbę funkcji, możesz otrzymać komunikat o błędzie HTTP 429 Quota. Aby rozwiązać takie problemy, spróbuj użyć częściowego wdrożenia.

Wycofywanie wdrożenia

Możesz wycofać wdrożenie w Hostingu Firebase na stronie Hostingu Firebase swojego projektu, wybierając dla danej wersji działanie Cofnięcie.

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

Wdróż określone usługi Firebase.

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

firebase deploy --only hosting,storage

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

Składnia flag Wdrożona usługa lub funkcja
--only hosting Treści w 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 (możliwe są bardziej szczegółowe wersje tej flagi)

Wdrażanie określonych funkcji

Podczas wdrażania funkcji możesz ukierunkować konkretne funkcje. Na 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 umożliwiają wdrażanie wielu funkcji za pomocą jednego polecenia.

Możesz na przykład napisać następujące funkcje, aby 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 konkretnie definiują funkcje w obiekcie groupB. Na 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 o podanej nazwie 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

  • Pomija prośbę o potwierdzenie:

    firebase functions:delete FUNCTION-1_NAME --force

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

Skrypty powłoki możesz połączyć z poleceniem firebase deploy, aby wykonywać zadania przed wdrożeniem lub po wdrożeniu. Na przykład skrypt wstępnego wdrożenia może przetranspilować kod TypeScript na kod JavaScript, a punkt zaczepienia po wdrożeniu może powiadomić administratorów o wdrożeniach 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. Możesz zdefiniować krótkie skrypty bezpośrednio w pliku firebase.json lub odwoływać się do innych plików w katalogu projektu.

Na przykład ten skrypt jest wyrażeniem firebase.json dla zadania po wdrożeniu, które wysyła wiadomość Slacka po pomyślnym wdrożeniu w 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żna wdrożyć. Pamiętaj, że uruchomienie firebase deploy aktywuje wszystkie zadania przed wdrożeniem i po wdrożeniu zdefiniowane w pliku firebase.json. Aby uruchomić tylko zadania powiązane z konkretną usługą Firebase, użyj poleceń wdrożenia częściowego.

Zarówno punkty zaczepienia predeploy, jak i postdeploy wyświetlają w terminalu standardowe dane wyjściowe i strumienie błędów skryptów. W przypadku niepowodzenia zapoznaj się z tymi informacjami:

  • Jeśli zaczepie przed wdrożeniem nie zakończy się zgodnie z oczekiwaniami, wdrożenie zostanie anulowane.
  • Jeśli wdrożenie z jakiegoś powodu nie powiedzie się, 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, które mają zostać wdrożone

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 wchodzić w interakcje z instancją bazy danych inną 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 poleceń

Polecenia administracyjne interfejsu wiersza poleceń

Polecenie Opis
pomoc Wyświetla informacje o interfejsie wiersza poleceń lub konkretnych poleceniach.
init Powoduje powiązanie i konfigurowanie nowego projektu Firebase w bieżącym katalogu. To polecenie tworzy w bieżącym katalogu plik konfiguracji firebase.json.
login Uwierzytelnianie interfejsu wiersza poleceń na koncie Firebase. Wymaga dostępu do przeglądarki.
Aby zalogować się do interfejsu wiersza poleceń w środowiskach zdalnych, które nie zezwalają na dostęp do interfejsu 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.
otwarte Otwiera przeglądarkę do odpowiednich zasobów projektu.
projekty:lista Wyświetla listę wszystkich projektów Firebase, do których masz dostęp.
użyj Ustawia aktywny projekt Firebase na potrzeby interfejsu wiersza poleceń.
Zarządza aliasami projektów.

Polecenia do zarządzania projektami

Polecenie Opis
Zarządzanie projektami Firebase
projects:addfirebase Dodaje zasoby Firebase do istniejącego projektu Google Cloud.
projekty:tworzenie Tworzy nowy projekt Google Cloud, a następnie dodaje do niego zasoby Firebase.
projekty:lista Wyświetla listę wszystkich projektów Firebase, do których masz dostęp.
Zarządzanie aplikacjami Firebase (iOS, Android i internetem)
apps:create, Tworzy nową aplikację Firebase w aktywnym projekcie.
apps:lista Wyświetla listę aplikacji Firebase zarejestrowanych w aktywnym projekcie.
apps:sdkconfig, Drukuje konfigurację usług Google aplikacji Firebase.
setup:web Wycofano. Zamiast tego użyj apps:sdkconfig i podaj web jako argument platformy.
Drukuje 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
Wyświetla hasze 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
deploy Wdraża kod i zasoby z katalogu projektu w aktywnym projekcie. W przypadku Hostingu Firebase wymagany jest plik konfiguracji firebase.json.
wyświetlanie Uruchamia lokalny serwer 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:dodaj Dodaje testerów do projektu.
appdistribution:testers:remove Usuwa testerów z projektu.

Polecenia uwierzytelniania (zarządzanie użytkownikami)

Polecenie Opis
auth:export Eksportuje konta użytkowników aktywnego projektu do pliku JSON lub CSV. Więcej informacji znajdziesz na stronach 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 stronach auth:import i auth:export.

Polecenia Cloud Firestore

Polecenie Opis
firestore:locations

Wyświetl listę dostępnych lokalizacji dla 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 <nazwa regionu>, aby określić lokalizację wdrożenia dla bazy danych. Aby wyświetlić listę dostępnych lokalizacji, możesz użyć polecenia firebase firestore:locations. Wymagany.
  • --delete-protection <deleteProtectionState>, który zezwala na usunięcie określonej bazy danych lub blokuje jej usunięcie. Prawidłowe wartości to ENABLED lub DISABLED. Wartość domyślna 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. Wartość domyślna to DISABLED. Opcjonalnie.
firestore:databases:list

Wyświetl listę 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 przyjmuje te flagi:

  • --delete-protection <deleteProtectionState>, który zezwala na usunięcie określonej bazy danych lub blokuje jej usunięcie. Prawidłowe wartości to ENABLED lub DISABLED. Wartość domyślna 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. Wartość domyślna to DISABLED. Opcjonalnie.
firestore:databases:delete DATABASE_ID

usunąć bazę danych w projekcie Firebase,

firestore:indexes

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

Polecenie przyjmuje tę flagę:

  • --database DATABASE_ID, aby określić nazwę bazy danych, dla której chcesz wyświetlić listę indeksów. Jeśli ich nie podasz, zostaną wyświetlone indeksy dla domyślnej bazy danych.
firestore:delete

Usuwa dokumenty w bazie danych aktywnego projektu. Za pomocą interfejsu wiersza poleceń możesz rekurencyjnie usuwać wszystkie dokumenty w 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 przyjmuje tę flagę:

  • --database DATABASE_ID, aby określić nazwę bazy danych, z której są 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 Powoduje skopiowanie środowiska innego projektu do aktywnego projektu Firebase.
functions:config:get Pobiera istniejące wartości konfiguracji funkcji w Cloud Functions aktywnego projektu.
functions:config:set Zapisuje wartości konfiguracji środowiska wykonawczego 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 rozszerzeń

Polecenie Opis
ext Wyświetla informacje o korzystaniu z poleceń Rozszerzeń w Firebase.
Wyświetla instancje rozszerzeń zainstalowanych w aktywnym projekcie.
ext:konfiguracja \
EXTENSION_INSTANCE_ID
Ponownie konfiguruje wartości parametrów instancji rozszerzenia w pliku manifestu rozszerzenia.
ext:informacje \
PUBLISHER_ID/EXTENSION_ID
Wyświetla szczegółowe informacje o rozszerzeniu.
ext:instalacja \
PUBLISHER_ID/EXTENSION_ID
Dodaje nowe wystąpienie rozszerzenia do pliku manifestu rozszerzenia.
ext:lista Wyświetla listę wszystkich instancji rozszerzeń zainstalowanych w projekcie Firebase.
Drukuje 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 Twojego 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:lista\
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, które pasują do predykatu wersji.
Predykat wersji może być pojedynczą wersją (np. 1.0.0) lub zakresem wersji (np. >1.0.0).
Jeśli nie podano predykatu wersji, wycofywane są wszystkie wersje danego rozszerzenia.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Cofnij wycofanie wersji rozszerzenia, które pasują do predykatu wersji.
Predykat wersji może być pojedynczą wersją (np. 1.0.0) lub zakresem wersji (np. >1.0.0).
Jeśli nie podano predykatu wersji, wycofaj wszystkie wersje danego 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 w Hostingu Firebase w aktywnym projekcie Firebase.

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

Zarządzanie witrynami hostingowymi
firebase hosting:sites:create \
SITE_ID

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

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

firebase hosting:sites:delete \
SITE_ID

Usuwa określoną witrynę Hostingu

Przed usunięciem witryny interfejs wiersza poleceń wyświetli 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 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 przy użyciu podanego parametru 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ąć aktywnego kanału witryny.

firebase hosting:channel:deploy \
CHANNEL_ID

Wdraża zawartość i konfigurację Hostingu na określonym kanale podglądu

Jeśli kanał podglądu jeszcze nie istnieje, przed wdrożeniem na kanale to polecenie tworzy kanał w witrynie Hostingu default.

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

Kopiuje ostatnio wdrożoną wersję w określonym kanale „źródłowym” do określonego kanału „docelowego”

Polecenie to jest wdrażane również w określonym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie tworzy nowy kanał podglądu w witrynie „target” Hosting przed wdrożeniem na kanale.

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

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

Polecenie to jest wdrażane również w określonym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie tworzy nowy kanał podglądu w witrynie „target” Hosting przed wdrożeniem na kanale.

VERSION_ID znajdziesz w panelu Hostingu w konsoli Firebase.

Polecenia dotyczące bazy danych czasu rzeczywistego

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

Po utworzeniu instancji możesz nimi zarządzać, co zostało omówione w artykule Zarządzanie wieloma instancjami bazy danych czasu rzeczywistego.

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. Informacje o nazwach regionów, których chcesz używać w przypadku tej opcji, znajdziesz w artykule o wybieraniu lokalizacji do projektu. Jeśli w bieżącym projekcie nie ma instancji bazy danych, pojawi się prośba o uruchomienie procesu firebase init, aby utworzyć instancję.
database:instances:list, Wyświetl wszystkie instancje bazy danych w tym projekcie. Akceptuje opcję --location do wyświetlania listy baz danych w określonym regionie. Informacje o nazwach regionów, których chcesz używać w przypadku tej opcji, znajdziesz w artykule o wybieraniu lokalizacji do projektu.
database:profil Kompiluje 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. Przyjmuje dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń.
database:usunięcie Usuwa wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu.
database:set Zastępuje wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń.
database:update Wykonuje częściową aktualizację w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń.

Polecenia Zdalnej konfiguracji

Polecenie Opis
remoteconfig:versions:list \
– limit NUMBER_OF_VERSIONS
Zawiera listę ostatnich 10 wersji szablonu. Określ 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 (wartość domyślna to najnowsza wersja) i zapisuje w tabeli grupy parametrów, parametry, nazwy warunków i wersję. Opcjonalnie możesz zapisać dane wyjściowe w określonym pliku za pomocą funkcji -o, FILENAME.
remoteconfig:rollback \
--v, numer_wersji VERSION_NUMBER
--force
Wycofuje szablon Zdalnej konfiguracji do określonego numeru poprzedniej wersji lub stosuje się domyślnie poprzednią wersję (obecną wersję -1). Jeśli zasada --force nie zostanie przekazana, przed przejściem do przywracania zmian wyświetli się prośba T/N.