Informacje o interfejsie CLI Firebase

Interfejs Firebase CLI ( GitHub ) zapewnia różnorodne narzędzia do zarządzania, przeglądania i wdrażania projektów Firebase.

Przed użyciem interfejsu wiersza polecenia Firebase skonfiguruj projekt Firebase .

Skonfiguruj lub zaktualizuj interfejs CLI

Zainstaluj interfejs wiersza polecenia Firebase

Możesz zainstalować interfejs Firebase CLI, korzystając z metody dopasowanej do Twojego systemu operacyjnego, poziomu doświadczenia i/lub przypadku użycia. Niezależnie od sposobu instalacji interfejsu CLI, masz dostęp do tej samej funkcjonalności i polecenia firebase .

Windows macOS Linux

Okna

Możesz zainstalować interfejs Firebase CLI dla Windows, korzystając z jednej z następujących opcji:

Opcja Opis Polecane dla...
samodzielny plik binarny Pobierz samodzielny plik binarny dla interfejsu CLI. Następnie możesz uzyskać dostęp do pliku wykonywalnego, aby otworzyć powłokę, w której możesz uruchomić polecenie firebase . Nowi programiści

Programiści nieużywający Node.js lub nieznający go
npm Użyj npm (Menedżer pakietów Node), aby zainstalować interfejs CLI i włączyć globalnie dostępne polecenie firebase . Programiści korzystający z Node.js

samodzielny plik binarny

Aby pobrać i uruchomić plik binarny interfejsu CLI Firebase, wykonaj następujące kroki:

  1. Pobierz plik binarny Firebase CLI dla 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 CLI .

npm

Aby użyć npm (Menedżera pakietów Node) do zainstalowania interfejsu CLI Firebase, wykonaj następujące kroki:

  1. Zainstaluj Node.js za pomocą nvm-windows (Menedżer wersji węzła). Zainstalowanie Node.js powoduje automatyczną instalację narzędzi poleceń npm .

  2. Zainstaluj interfejs CLI Firebase przez npm , uruchamiając następujące polecenie:

    npm install -g firebase-tools

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

  3. Kontynuuj logowanie i testowanie interfejsu CLI .

macOS lub Linux

Możesz zainstalować interfejs Firebase CLI dla systemu macOS lub Linux, korzystając z jednej z następujących opcji:

Opcja Opis Polecane dla...
automatyczny skrypt instalacyjny Uruchom pojedyncze polecenie, które automatycznie wykryje Twój system operacyjny, pobierze najnowszą wersję CLI, a następnie włączy globalnie dostępne polecenie firebase . Nowi programiści

Programiści nieużywający Node.js lub nieznający go

Zautomatyzowane wdrożenia w środowisku CI/CD
samodzielny plik binarny Pobierz samodzielny plik binarny dla interfejsu CLI. Następnie możesz skonfigurować i uruchomić plik binarny, aby dopasować go do swojego przepływu pracy. W pełni konfigurowalne przepływy pracy za pomocą interfejsu CLI
npm Użyj npm (Menedżer pakietów Node), aby zainstalować interfejs CLI i włączyć globalnie dostępne polecenie firebase . Programiści korzystający z Node.js

skrypt automatycznej instalacji

Aby zainstalować interfejs CLI Firebase przy użyciu skryptu instalacji automatycznej, wykonaj następujące kroki:

  1. Uruchom następujące polecenie cURL:

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

    Ten skrypt automatycznie wykrywa Twój system operacyjny, pobiera najnowszą wersję Firebase CLI, a następnie włącza dostępne globalnie polecenie firebase .

  2. Kontynuuj logowanie i testowanie interfejsu CLI .

Więcej przykładów i szczegółów dotyczących skryptu automatycznej instalacji można znaleźć w kodzie źródłowym skryptu w witrynie firebase.tools .

samodzielny plik binarny

Aby pobrać i uruchomić plik binarny interfejsu wiersza polecenia Firebase specyficznego dla Twojego systemu operacyjnego, wykonaj następujące kroki:

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

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

    1. Utwórz plik binarny wykonywalny, uruchamiając chmod +x ./firebase_tools .
    2. Dodaj ścieżkę pliku binarnego do swojej PATH.
  3. Kontynuuj logowanie i testowanie interfejsu CLI .

npm

Aby użyć npm (Menedżera pakietów Node) do zainstalowania interfejsu CLI Firebase, wykonaj następujące kroki:

  1. Zainstaluj Node.js przy użyciu nvm (menedżera wersji węzła).
    Zainstalowanie Node.js powoduje automatyczną instalację narzędzi poleceń npm .

  2. Zainstaluj interfejs CLI Firebase przez npm , uruchamiając następujące polecenie:

    npm install -g firebase-tools

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

  3. Kontynuuj logowanie i testowanie interfejsu CLI .

Zaloguj się i przetestuj interfejs CLI Firebase

Po zainstalowaniu interfejsu CLI należy dokonać uwierzytelnienia. Następnie możesz potwierdzić uwierzytelnienie, wyświetlając listę swoich projektów Firebase.

  1. Zaloguj się do Firebase przy użyciu swojego konta Google, uruchamiając następujące polecenie:

    firebase login

    To polecenie łączy komputer lokalny z Firebase i zapewnia dostęp do projektów Firebase.

  2. Sprawdź, czy interfejs CLI jest poprawnie zainstalowany i czy uzyskuje dostęp do Twojego konta, wyświetlając listę swoich projektów Firebase. Uruchom następujące polecenie:

    firebase projects:list

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

Zaktualizuj do najnowszej wersji CLI

Ogólnie rzecz biorąc, chcesz używać najnowszej wersji Firebase CLI.

Sposób aktualizacji wersji CLI zależy od systemu operacyjnego i sposobu instalacji CLI.

Okna

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

System operacyjny Mac

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

Linuksa

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

Używaj interfejsu CLI w systemach CI

Interfejs CLI Firebase wymaga przeglądarki, aby zakończyć uwierzytelnianie, ale interfejs CLI jest w pełni kompatybilny z CI i innymi środowiskami bezgłowymi.

  1. Na komputerze z przeglądarką zainstaluj Firebase CLI .

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

    firebase login:ci
  3. Odwiedź podany adres URL, a następnie zaloguj się przy użyciu konta Google.

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

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

  6. Użyj tego tokena podczas uruchamiania poleceń firebase . Możesz skorzystać z jednej z dwóch poniższych opcji:

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

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

Zainicjuj projekt Firebase

Wiele typowych zadań wykonywanych przy użyciu interfejsu CLI, takich jak wdrażanie w projekcie Firebase, wymaga katalogu projektu . Ustanawiasz 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 katalog zawiera plik konfiguracyjny firebase.json .

Aby zainicjować nowy projekt Firebase, uruchom następujące polecenie z katalogu aplikacji:

firebase init

Polecenie firebase init przeprowadzi Cię przez proces konfigurowania katalogu projektu i niektórych produktów Firebase. Podczas inicjalizacji projektu interfejs CLI Firebase poprosi Cię o wykonanie następujących zadań:

  • Wybierz żądane produkty Firebase, które chcesz skonfigurować w projekcie Firebase.

    W tym kroku zostanie wyświetlony monit o ustawienie konfiguracji określonych plików dla wybranych produktów. Więcej szczegółów na temat tych konfiguracji można znaleźć w dokumentacji konkretnego produktu (na przykład Hosting ). Pamiętaj, że zawsze możesz uruchomić firebase init później, aby skonfigurować więcej produktów Firebase.

  • Wybierz domyślny projekt Firebase.

    Ten krok wiąże bieżący katalog projektu z projektem Firebase, dzięki czemu polecenia specyficzne dla projektu (takie jak firebase deploy ) działają w odniesieniu do odpowiedniego projektu Firebase.

    Możliwe jest również powiązanie wielu projektów Firebase (takich jak projekt przejściowy i projekt produkcyjny) z tym samym katalogiem projektu.

Pod koniec inicjalizacji Firebase automatycznie tworzy następujące dwa pliki w katalogu głównym lokalnego katalogu aplikacji:

  • Plik konfiguracyjny firebase.json zawierający listę konfiguracji projektu.

  • Plik .firebaserc przechowujący aliasy Twojego projektu.

Plik firebase.json

Komenda firebase init tworzy plik konfiguracyjny firebase.json w katalogu głównym katalogu projektu.

Plik firebase.json jest wymagany do wdrożenia zasobów za pomocą interfejsu wiersza polecenia Firebase, ponieważ określa, które pliki i ustawienia z katalogu projektu są wdrażane w projekcie Firebase. Ponieważ niektóre ustawienia można zdefiniować albo w katalogu projektu, albo w konsoli Firebase, upewnij się, że rozwiązałeś wszelkie potencjalne konflikty wdrożeniowe .

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 polecenia Firebase , polecenie firebase init tworzy określone pliki, w których można zdefiniować ustawienia tych usług, np. plik index.js dla Cloud Functions. Możesz także skonfigurować zaczepy przed wdrożeniem lub po wdrożeniu w pliku firebase.json .

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

{
  "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ż domyślnie używany jest firebase.json , możesz przekazać flagę --config PATH , aby określić alternatywny plik konfiguracyjny.

Konfiguracja dla wielu baz danych Cloud Firestore

Po uruchomieniu firebase init Twój plik firebase.json będzie zawierał pojedynczy klucz firestore odpowiadający domyślnej bazie danych Twojego projektu, jak pokazano powyżej.

Jeśli Twój projekt zawiera wiele baz danych Cloud Firestore, edytuj plik firebase.json , aby powiązać z każdą bazą danych różne reguły bezpieczeństwa Cloud Firestore i pliki źródłowe indeksu bazy 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 do zignorowania podczas wdrażania

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

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

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

Jeśli dodasz własne wartości niestandardowe dla ignore w firebase.json , upewnij się, że zachowałeś (lub dodałeś, jeśli jej brakuje) listę plików pokazaną powyżej.

Zarządzaj aliasami projektów

Możesz powiązać wiele projektów Firebase z tym samym katalogiem projektu. Na przykład możesz chcieć użyć jednego projektu Firebase do testowania, a drugiego do produkcji. Korzystając z różnych środowisk projektowych, możesz zweryfikować zmiany przed wdrożeniem do produkcji. Polecenie firebase use pozwala przełączać się między aliasami, a także tworzyć nowe aliasy.

Dodaj alias projektu

Kiedy podczas inicjalizacji projektu wybierzesz projekt Firebase, projektowi automatycznie zostanie przypisany alias default . Aby jednak umożliwić uruchamianie poleceń specyficznych dla projektu w innym projekcie Firebase, ale nadal korzystać z tego samego katalogu projektu, uruchom następujące polecenie z katalogu projektu:

firebase use --add

To polecenie monituje o wybranie innego projektu Firebase i przypisanie projektu jako aliasu. Przypisania aliasów są zapisywane w pliku .firebaserc w katalogu projektu.

Użyj aliasów projektu

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

Komenda Opis
firebase use Wyświetl listę aktualnie zdefiniowanych aliasów dla katalogu projektu
firebase use \
PROJECT_ID|ALIAS
Kieruje wszystkie polecenia do uruchomienia w określonym projekcie Firebase.
Interfejs CLI używa tego projektu jako aktualnie „aktywnego projektu”.
firebase use --clear Czyści aktywny projekt.

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

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

Możesz zastąpić aktualnie używany projekt, przekazując flagę --project za pomocą dowolnego polecenia CLI. Na przykład: możesz ustawić interfejs CLI tak, aby działał w projekcie Firebase, któremu przypisałeś alias staging . Jeśli chcesz uruchomić pojedyncze polecenie w projekcie Firebase, do którego przypisałeś alias prod , możesz uruchomić na przykład firebase deploy --project=prod .

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

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

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

Udostępniaj i testuj swój projekt Firebase lokalnie

Możesz wyświetlić i przetestować swój projekt Firebase pod lokalnie hostowanymi adresami URL przed wdrożeniem w środowisku produkcyjnym. Jeśli chcesz przetestować tylko wybrane funkcje, możesz użyć listy rozdzielanej przecinkami we fladze w poleceniu firebase serve .

Uruchom następującą komendę z katalogu głównego lokalnego katalogu projektu, jeśli chcesz wykonać jedno z następujących zadań:

firebase serve --only hosting

Emuluj swój projekt, korzystając z lokalnych funkcji HTTP

Uruchom dowolne z poniższych poleceń z katalogu projektu, aby emulować projekt przy użyciu lokalnych funkcji HTTP.

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

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Aby emulować tylko funkcje HTTP, użyj następującego polecenia:

    firebase serve --only functions

Przetestuj z innych urządzeń lokalnych

Domyślnie firebase serve odpowiada tylko na żądania z localhost . Oznacza to, że będziesz mieć dostęp do hostowanych treści z przeglądarki internetowej na swoim komputerze, ale nie z innych urządzeń w Twojej sieci. Jeśli chcesz testować na innych urządzeniach lokalnych, użyj flagi --host w następujący sposób:

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

Wdróż w projekcie Firebase

Interfejs wiersza polecenia 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 chmury dla Firebase
  • Reguły dla bazy danych czasu rzeczywistego Firebase
  • Reguły dotyczące przechowywania w chmurze dla Firebase
  • Zasady dotyczące Cloud Firestore
  • Indeksy dla Cloud Firestore

Aby wdrożyć w projekcie Firebase, uruchom następujące 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."

Korzystając z polecenia firebase deploy , należy pamiętać o następujących kwestiach:

  • Aby wdrożyć zasoby z katalogu projektu, w katalogu projektu musi znajdować się plik firebase.json . Ten plik jest tworzony automatycznie przez polecenie firebase init .

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

Konflikty wdrożeniowe dotyczące reguł bezpieczeństwa

W przypadku bazy danych Firebase Realtime Database, Cloud Storage for Firebase i Cloud Firestore możesz zdefiniować reguły bezpieczeństwa w lokalnym katalogu projektu lub w konsoli Firebase .

Inną opcją uniknięcia konfliktów wdrożeniowych jest użycie wdrożenia częściowego i zdefiniowanie reguł tylko w konsoli Firebase.

Limity wdrożeniowe

Możliwe (choć mało prawdopodobne), że przekroczysz limit ograniczający szybkość lub wielkość operacji wdrażania Firebase. Na przykład podczas wdrażania bardzo dużej liczby funkcji może zostać wyświetlony komunikat o błędzie HTTP 429 Quota . Aby rozwiązać takie problemy, spróbuj zastosować wdrożenie częściowe .

Wycofaj wdrożenie

Możesz wycofać wdrożenie Firebase Hosting na stronie Firebase Hosting swojego projektu, wybierając akcję Wycofaj dla żądanej wersji.

Obecnie nie jest możliwe wycofanie wydań reguł bezpieczeństwa dla Firebase Realtime Database, Cloud Storage for 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 rozdzielanej przecinkami we fladze polecenia firebase deploy . Na przykład poniższe polecenie wdraża reguły zabezpieczeń Firebase Hosting i Cloud Storage.

firebase deploy --only hosting,storage

W poniższej tabeli wymieniono usługi i funkcje dostępne do częściowego wdrożenia. Nazwy we flagach odpowiadają kluczom w pliku konfiguracyjnym firebase.json .

Składnia flagi Wdrożono usługę lub funkcję
--only hosting Treść hostingu Firebase
--only database Reguły bazy danych czasu rzeczywistego Firebase
--only storage Reguły Cloud Storage dla Firebase
--only firestore Reguły i indeksy Cloud Firestore dla wszystkich skonfigurowanych baz danych
--only functions Cloud Functions dla Firebase (możliwe są bardziej szczegółowe wersje tej flagi )

Wdróż określone funkcje

Podczas wdrażania funkcji można kierować określone funkcje. Na przykład:

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

Inną opcją jest pogrupowanie funkcji w grupy eksportu w pliku /functions/index.js . Grupowanie funkcji umożliwia wdrożenie wielu funkcji za pomocą jednego polecenia.

Na przykład możesz 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 szczegółowo definiują funkcje w 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 następującą komendę z katalogu projektu:

firebase deploy --only functions:groupA

Możesz też wybrać konkretną funkcję w grupie, uruchamiając następującą komendę:

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

Usuń funkcje

Interfejs CLI Firebase obsługuje następujące polecenia i opcje usuwania 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ę działającą w regionie innym niż domyślny:

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

  • Usuwa więcej niż jedną funkcję:

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

  • Usuwa określoną grupę funkcji:

    firebase functions:delete GROUP_NAME

  • Pomija monit o potwierdzenie:

    firebase functions:delete FUNCTION-1_NAME --force

Skonfiguruj zadania skryptowe przed 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. Na przykład skrypt przed wdrożeniem może transponować kod TypeScript na JavaScript, a hak po wdrożeniu może powiadamiać administratorów o wdrożeniu nowej zawartości witryny w Firebase Hosting.

Aby skonfigurować zaczepy przed wdrożeniem lub po wdrożeniu, dodaj skrypty bash do pliku konfiguracyjnego firebase.json . Możesz zdefiniować krótkie skrypty bezpośrednio w pliku firebase.json lub możesz odwoływać się do innych plików znajdujących się w katalogu projektu.

Na przykład poniższy skrypt jest wyrażeniem firebase.json dla zadania po wdrożeniu, które wysyła komunikat Slack po pomyślnym wdrożeniu w Hostingu Firebase.

"hosting": {
  // ...

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

Plik skryptowy messageSlack.sh znajduje się w katalogu projektu i wygląda następująco:

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

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

Zarówno zaczepy predeploy , jak i postdeploy wypisują standardowe wyjście i strumienie błędów skryptów do terminala. W przypadku awarii należy zwrócić uwagę na następujące kwestie:

  • Jeśli zaczep przed wdrożeniem nie zakończy się zgodnie z oczekiwaniami, wdrożenie zostanie anulowane.
  • Jeśli wdrożenie z jakiegokolwiek powodu nie powiedzie się, zaczepy po wdrożeniu nie zostaną uruchomione.

Zmienne środowiska

W skryptach działających w hakach przed i po wdrożeniu dostępne są następujące zmienne środowiskowe:

  • $GCLOUD_PROJECT : Identyfikator projektu 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ądzaj wieloma instancjami bazy danych czasu rzeczywistego

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

Można jednak wchodzić w interakcję z instancją bazy danych inną niż domyślna za pomocą metody --instance DATABASE_NAME . Następujące polecenia obsługują flagę --instance :

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

Odniesienie do poleceń

Polecenia administracyjne CLI

Komenda Opis
pomoc Wyświetla informacje pomocy dotyczące interfejsu CLI lub określonych poleceń.
w tym Kojarzy i konfiguruje nowy projekt Firebase w bieżącym katalogu. To polecenie tworzy plik konfiguracyjny firebase.json w bieżącym katalogu.
Zaloguj sie Uwierzytelnia CLI na Twoim koncie Firebase. Wymaga dostępu do przeglądarki internetowej.
Aby zalogować się do interfejsu CLI w środowiskach zdalnych, które nie pozwalają na dostęp do localhost , użyj metody --no-localhost flaga.
zaloguj się: ci Generuje token uwierzytelniający do użytku w środowiskach nieinteraktywnych.
Wyloguj Wylogowuje CLI z konta Firebase.
otwarty Otwiera przeglądarkę z odpowiednimi zasobami projektu.
projekty:lista Wyświetla listę wszystkich projektów Firebase, do których masz dostęp.
używać Ustawia aktywny projekt Firebase dla interfejsu CLI.
Zarządza aliasami projektów .

Polecenia zarządzania projektami

Komenda Opis
Zarządzanie projektami Firebase
projekty:dodajfirebase Dodaje zasoby Firebase do istniejącego projektu Google Cloud.
projekty:tworzenie Tworzy nowy projekt Google Cloud, a następnie dodaje do nowego projektu zasoby Firebase.
projekty:lista Wyświetla listę wszystkich projektów Firebase, do których masz dostęp.
Zarządzanie aplikacjami Firebase (iOS, Android, Internet)
aplikacje: utwórz Tworzy nową aplikację Firebase w aktywnym projekcie.
aplikacje:lista Wyświetla listę zarejestrowanych aplikacji Firebase w aktywnym projekcie.
aplikacje:sdkconfig Drukuje konfigurację usług Google aplikacji Firebase.
konfiguracja: internet Przestarzałe. Zamiast tego użyj apps:sdkconfig i określ web jako argument platformy.
Drukuje konfigurację usług Google aplikacji internetowej Firebase.
Zarządzanie skrótami certyfikatów SHA (tylko Android)
aplikacje:Android:sha:Utwórz \
FIREBASE_APP_ID SHA_HASH
Dodaje określony skrót certyfikatu SHA do określonej aplikacji Firebase na Androida.
aplikacje:android:sha:usuń \
FIREBASE_APP_ID SHA_HASH
Usuwa określony skrót certyfikatu SHA z określonej aplikacji Firebase na Androida.
aplikacje:android:sha:lista \
FIREBASE_APP_ID
Wyświetla skróty certyfikatów SHA dla określonej aplikacji Firebase na Androida.

Wdrożenia i rozwój lokalny

Te polecenia umożliwiają wdrażanie witryny Firebase Hosting i interakcję z nią.

Komenda Opis
wdrożyć Wdraża kod i zasoby z katalogu projektu w aktywnym projekcie. W przypadku Hostingu Firebase wymagany jest plik konfiguracyjny firebase.json .
podawać Uruchamia lokalny serwer WWW z konfiguracją Firebase Hosting. W przypadku Hostingu Firebase wymagany jest plik konfiguracyjny firebase.json .

Polecenia dystrybucji aplikacji

Komenda Opis
dystrybucja aplikacji:dystrybuuj \
--app FIREBASE_APP_ID
Udostępnia kompilację testerom.
dystrybucja aplikacji:testerzy:dodaj Dodaje testerów do projektu.
dystrybucja aplikacji:testerzy:usuń Usuwa testerów z projektu.

Polecenia uwierzytelniania (zarządzania użytkownikami).

Komenda Opis
autoryzacja:eksport Eksportuje konta użytkowników aktywnego projektu do pliku JSON lub CSV. Więcej szczegółów można znaleźć na stronach auth:import i auth:export .
autoryzacja: import Importuje konta użytkowników z pliku JSON lub CSV do aktywnego projektu. Więcej szczegółów można znaleźć na stronach auth:import i auth:export .

Polecenia Cloud Firestore

Komenda Opis
Firestore:lokalizacje

Lista dostępnych lokalizacji dla Twojej bazy danych Cloud Firestore.

Firestore:bazy danych:utwórz DATABASE_ID

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

Polecenie przyjmuje następujące flagi:

  • --location <nazwa regionu>, aby określić lokalizację wdrożenia bazy danych. Pamiętaj, że możesz uruchomić firebase firestore:locations , aby wyświetlić listę dostępnych lokalizacji. Wymagany .
  • --delete-protection <deleteProtectionState> , aby zezwolić lub uniemożliwić usunięcie określonej bazy danych. Poprawne wartości to ENABLED lub DISABLED . Domyślnie DISABLED .
  • --point-in-time-recovery <PITRState> , aby ustawić, czy włączone jest odzyskiwanie do punktu w czasie. Poprawne wartości to ENABLED lub DISABLED . Domyślnie DISABLED . Opcjonalny.
Firestore:bazy danych:lista

Wyświetl listę baz danych w projekcie Firebase.

Firestore:bazy danych: pobierz DATABASE_ID

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

Firestore:bazy danych:aktualizuj DATABASE_ID

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

Wymagana jest co najmniej jedna flaga. Polecenie przyjmuje następujące flagi:

  • --delete-protection <deleteProtectionState> , aby zezwolić lub uniemożliwić usunięcie określonej bazy danych. Poprawne wartości to ENABLED lub DISABLED . Domyślnie DISABLED .
  • --point-in-time-recovery <PITRState> , aby ustawić, czy włączone jest odzyskiwanie do punktu w czasie. Poprawne wartości to ENABLED lub DISABLED . Domyślnie DISABLED . Opcjonalny.
Firestore:bazy danych:usuń DATABASE_ID

Usuń bazę danych w projekcie Firebase.

Firestore:indeksy

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

Polecenie przyjmuje następującą flagę:

  • --database DATABASE_ID , aby określić nazwę bazy danych, dla której mają zostać wyświetlone indeksy. Jeśli nie podano, indeksy są wyświetlane dla domyślnej bazy danych.
Firestore: usuń

Usuwa dokumenty z bazy aktywnego projektu. Korzystając z interfejsu CLI, możesz rekursywnie usuwać wszystkie dokumenty w kolekcji.

Pamiętaj, że usunięcie danych Cloud Firestore za pomocą interfejsu CLI wiąże się z kosztami odczytu i usunięcia. Aby uzyskać więcej informacji, zobacz Omówienie rozliczeń Cloud Firestore .

Polecenie przyjmuje następującą flagę:

  • --database DATABASE_ID , aby określić nazwę bazy danych, z której usuwane są dokumenty. Jeśli nie zostanie określony, dokumenty zostaną usunięte z domyślnej bazy danych. Opcjonalny.

Cloud Functions dla poleceń Firebase

Komenda Opis
funkcje: konfiguracja: klon Klonuje środowisko innego projektu do aktywnego projektu Firebase.
funkcje:konfiguracja:get Pobiera istniejące wartości konfiguracyjne funkcji Cloud Functions aktywnego projektu.
funkcje:konfiguracja:zestaw Przechowuje wartości konfiguracji środowiska wykonawczego funkcji Cloud Functions aktywnego projektu.
funkcje:konfiguracja:nieustawione Usuwa wartości z konfiguracji środowiska wykonawczego aktywnego projektu.
funkcje:log Odczytuje logi z wdrożonych Cloud Functions.

Więcej informacji można znaleźć w dokumentacji konfiguracji środowiska .

Polecenia Crashlytics

Komenda Opis
Crashlytics:mappingfile:generateid \
--resource-file= PATH/TO/ANDROID_RESOURCE.XML
Generuje unikalny identyfikator pliku mapowania w określonym pliku zasobu systemu Android (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 Proguard dla tej aplikacji i kojarzy go z identyfikatorem pliku mapowania zadeklarowanym w określonym pliku zasobu Androida (XML).
Crashlytics:symbole:prześlij \
--app= FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Generuje plik symboli zgodny z Crashlytics dla awarii biblioteki natywnej w systemie Android i przesyła go na serwery Firebase.

Polecenia rozszerzeń

Komenda Opis
wew Wyświetla informacje na temat korzystania z poleceń rozszerzeń Firebase.
Wyświetla listę instancji rozszerzeń zainstalowanych w aktywnym projekcie.
wewn.:konfiguruj \
EXTENSION_INSTANCE_ID
Rekonfiguruje wartości parametrów instancji rozszerzenia w manifeście rozszerzenia .
wewn.:informacje \
PUBLISHER_ID/EXTENSION_ID
Drukuje szczegółowe informacje o rozszerzeniu.
wewn.:zainstaluj \
PUBLISHER_ID/EXTENSION_ID
Dodaje nową instancję rozszerzenia do manifestu rozszerzenia .
wewn.: lista Wyświetla listę wszystkich instancji rozszerzeń zainstalowanych w projekcie Firebase.
Drukuje identyfikator instancji dla każdego rozszerzenia.
ext:odinstaluj \
EXTENSION_INSTANCE_ID
Usuwa instancję rozszerzenia z manifestu rozszerzenia .
wewn.: aktualizacja \
EXTENSION_INSTANCE_ID
Aktualizuje instancję rozszerzenia do najnowszej wersji w manifeście rozszerzenia .
wewn.:eksport Eksportuje wszystkie zainstalowane wystąpienia rozszerzeń z projektu do manifestu rozszerzenia .

Polecenia wydawcy rozszerzeń

Komenda Opis
wewn.: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ę.
wew:dev:rejestracja Rejestruje projekt Firebase jako projekt wydawcy rozszerzeń .
ext:dev:przestarzałe \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Wycofuje wersje rozszerzeń zgodne z predykatem wersji.
Predykatem wersji może być pojedyncza wersja (np. 1.0.0 ) lub zakres wersji (np. >1.0.0 ).
Jeśli nie podano predykatu wersji, wszystkie wersje tego rozszerzenia są przestarzałe.
ext:dev:nieaktualne \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Cofa wersje rozszerzeń zgodne z predykatem wersji.
Predykatem wersji może być pojedyncza wersja (np. 1.0.0 ) lub zakres wersji (np. >1.0.0 ).
Jeśli nie podano predykatu wersji, cofa wszystkie wersje tego rozszerzenia.
ext:dev:prześlij \
PUBLISHER_ID/EXTENSION_ID
Przesyła nową wersję rozszerzenia.
ext:dev:użycie \
PUBLISHER_ID
Wyświetla liczbę instalacji i wskaźniki użycia rozszerzeń przesłanych przez wydawcę.

Komendy hostingowe

Komenda Opis
hosting:wyłącz

Zatrzymuje obsługę ruchu Firebase Hosting dla aktywnego projektu Firebase.

Po uruchomieniu tego polecenia pod adresem URL hostingu Twojego projektu zostanie wyświetlony komunikat „Nie znaleziono witryny”.

Zarządzanie witrynami hostingowymi
hosting Firebase:witryny:utwórz \
SITE_ID

Tworzy nową witrynę hostingową w aktywnym projekcie Firebase, używając określonego SITE_ID

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

hosting Firebase:witryny:usuń \
SITE_ID

Usuwa określoną witrynę hostingową

Przed usunięciem witryny interfejs CLI wyświetla monit o potwierdzenie.

(Opcjonalnie) Pomiń monit o potwierdzenie, przekazując następujące flagi: -f lub --force

hosting Firebase:sites:get \
SITE_ID

Pobiera informacje o określonej witrynie hostingowej

hosting Firebase:witryny:lista

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

Zarządzanie kanałami podglądu
hosting Firebase:kanał:utwórz \
CHANNEL_ID

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

To polecenie nie jest wdrażane w kanale.

hosting Firebase:kanał:usuń \
CHANNEL_ID

Usuwa określony kanał podglądu

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

hosting Firebase:kanał:wdróż \
CHANNEL_ID

Wdraża zawartość i konfigurację hostingu w określonym kanale podglądu

Jeśli kanał podglądu jeszcze nie istnieje, to polecenie tworzy kanał w domyślnej witrynie hostingu przed wdrożeniem w kanale.

hosting Firebase:kanał:lista Wyświetla listę wszystkich kanałów (w tym kanału „na żywo”) w domyślnej witrynie hostingowej
hosting Firebase:kanał:otwarty \
CHANNEL_ID
Otwiera przeglądarkę pod adresem URL określonego kanału lub zwraca adres URL, jeśli otwarcie w przeglądarce nie jest możliwe
Klonowanie wersji
hosting Firebase: klon \
SOURCE_SITE_ID : SOURCE_CHANNEL_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

Klonują ostatnio wdrożoną wersję na określonym kanale „źródło” do określonego kanału „docelowego”

To polecenie wdraża również na określonym kanale „docelowy”. Jeśli kanał „docelowy” nie istnieje jeszcze, to polecenie tworzy nowy kanał podglądu w witrynie hostingu „docelowego” przed wdrożeniem na kanale.

Firebase Hosting: Clone \
SOURCE_SITE_ID :@ VERSION_ID \
TARGET_SITE_ID : TARGET_CHANNEL_ID

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

To polecenie wdraża również na określonym kanale „docelowy”. Jeśli kanał „docelowy” nie istnieje jeszcze, to polecenie tworzy nowy kanał podglądu w witrynie hostingu „docelowego” przed wdrożeniem na kanale.

W VERSION_ID można znaleźć w pulpicie pulpitu hostingowym konsoli FireBase.

Polecenia bazy danych w czasie rzeczywistym

Zauważ, że możesz utworzyć początkową, domyślną instancję bazy danych w czasie rzeczywistym w konsoli FireBase lub za pomocą ogólnego przepływu pracy firebase init lub specyficznego przepływu firebase init database .

Po utworzeniu instancji możesz zarządzać nimi, jak omówiono w zarządzaniu wieloma instancjami bazy danych w czasie rzeczywistym .

Komenda Opis
Baza danych: Get Pobiera dane z bazy danych aktywnego projektu i wyświetla je jako JSON. Obsługuje zapytania dotyczące danych indeksowanych.
baza danych: instancje: Utwórz Tworzy instancję bazy danych o określonej nazwie instancji. Akceptuje opcję --location do tworzenia bazy danych w określonym regionie. Aby nazwy regionu mogą używać z tą opcją, zobacz Wybierz lokalizacje swojego projektu . Jeśli nie ma instancji bazy danych dla bieżącego projektu, masz monit o uruchomienie firebase init Flow w celu utworzenia instancji.
baza danych: instancje: lista Wymień wszystkie instancje bazy danych dla tego projektu. Akceptuje opcję --location do wyświetlania baz danych w określonym regionie. Aby nazwy regionu mogą używać z tą opcją, zobacz wybrane lokalizacje swojego projektu .
Baza danych: profil Buduje profil operacji w bazie danych aktywnego projektu. Aby uzyskać więcej informacji, patrz typy operacji bazy danych w czasie rzeczywistym .
Baza danych: push Przesuwa nowe dane do listy w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, stdina lub argumentu wiersza polecenia.
Baza danych: Usuń Usuwa wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu.
baza danych: SET Zastępuje wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, stdina lub argumentu wiersza polecenia.
Baza danych: aktualizacja Wykonuje częściową aktualizację w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, stdina lub argumentu wiersza polecenia.

Polecenia konfiguracyjne zdalne

Komenda Opis
RemoteConfig: Wersje: List \
-Limit NUMBER_OF_VERSIONS
Wymienia najnowsze dziesięć wersji szablonu. Określ 0 , aby zwrócić wszystkie istniejące wersje lub opcjonalnie przejdź opcję --limit , aby ograniczyć liczbę zwracanych wersji.
RemoteConfig: Get \
--v, version_number VERSION_NUMBER
--o, FILENAME wyjściowego
Pobiera szablon według wersji (domyślnie do najnowszej wersji) i wysyła grupy parametrów, parametry oraz nazwy warunku i wersji w tabeli. Opcjonalnie możesz zapisać dane wyjściowe do określonego pliku z -o, FILENAME .
RemoteConfig: Rolback \
--v, version_number VERSION_NUMBER
--siła
ROZCI POWIEDZIEJ SZTODY CONFIG ZADAWANYM NADZIEJEM NUMERUJĄCEM NUMERUJĄCEJ WYKORZYSTANIEM lub WYMAGI DO NAJWAŻNIEJSZEJ Poprzednią Wersję (Wersja bieżąca -1). O ile --force nie zostanie przekazane, wynika z T/N przed przejściem do wycofania.