Dokumentacja interfejsu wiersza poleceń Firebase

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

Zanim zaczniesz korzystać z Firebase CLI,skonfiguruj projekt Firebase.

Konfigurowanie lub aktualizowanie interfejsu wiersza poleceń

Instalowanie interfejsu wiersza poleceń Firebase

Interfejs wiersza poleceń Firebase możesz zainstalować za pomocą metody, która pasuje do Twojego systemu operacyjnego, poziomu doświadczenia lub przypadku użycia. Niezależnie od sposobu instalacji interfejsu CLI masz dostęp do tych samych funkcji i polecenia firebase.

Windows macOS Linux

Windows

Firebase CLI dla Windowsa możesz zainstalować, korzystając z jednej z tych opcji:

Opcja Opis Polecane 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 używają Node.js lub nie znają tej platformy
npm Użyj npm (Node Package Manager), 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 Firebase, wykonaj te czynności:

  1. Pobierz Firebase CLI w formacie binarnym naWindowsa.

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

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

npm

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

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

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

    npm install -g firebase-tools

    To polecenie włącza dostępne na całym świecie polecenie firebase.

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

macOS lub Linux

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

Opcja Opis Polecane dla...
automatyczny skrypt instalacyjny Uruchom jedno polecenie, które automatycznie wykryje Twój system operacyjny, pobierze najnowszą wersję interfejsu wiersza poleceń, a następnie włączy dostępne globalnie polecenie firebase. Nowi deweloperzy

Deweloperzy, którzy nie używają Node.js lub nie znają tego języka

Automatyczne wdrażanie w środowisku CI/CD
samodzielny plik binarny Pobierz samodzielny plik binarny interfejsu wiersza poleceń. Następnie możesz skonfigurować i uruchomić plik binarny, aby dostosować go do swojego przepływu pracy. W pełni konfigurowalne przepływy pracy przy użyciu interfejsu wiersza poleceń
npm Użyj npm (Node Package Manager), 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 Firebase za pomocą automatycznego skryptu instalacyjnego, 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 szczegółów dotyczących skryptu automatycznej instalacji znajdziesz w jego kodzie źródłowym na stronie firebase.tools.

samodzielny plik binarny,

Aby pobrać i uruchomić plik binarny interfejsu Firebase CLI odpowiedni dla Twojego systemu operacyjnego, wykonaj te czynności:

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

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

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

npm

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

  1. Zainstaluj Node.js za pomocą nvm (Node Version Manager).
    Instalacja Node.js automatycznie instaluje narzędzia wiersza poleceń npm.

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

    npm install -g firebase-tools

    To polecenie włącza dostępne na całym świecie polecenie firebase.

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

Zaloguj się i przetestuj interfejs wiersza poleceń Firebase

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

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

    firebase login

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

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

    firebase projects:list

    Wyświetlona lista powinna być taka sama jak lista projektów Firebase w Firebase konsoli.

Aktualizowanie do najnowszej wersji interfejsu CLI

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

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

Windows

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

macOS

  • automatyczny skrypt instalacyjny: uruchom curl -sL https://firebase.tools | upgrade=true bash

  • samodzielny plik binarny: pobierz nową wersję, a następnie zastąp nią starą w systemie.

  • npm: uruchom npm install -g firebase-tools

Linux

  • automatyczny skrypt instalacyjny: uruchom curl -sL https://firebase.tools | upgrade=true bash

  • samodzielny plik binarny: pobierz nową wersję, a następnie zastąp nią starą w systemie.

  • npm: uruchom npm install -g firebase-tools

Korzystanie z interfejsu wiersza poleceń w systemach CI

Jeśli używasz interfejsu CLI w systemach CI, zalecamy uwierzytelnianie za pomocą domyślnych danych logowania aplikacji.

(Zalecane) Użyj domyślnego uwierzytelniania aplikacji

Interfejs Firebase CLI wykryje i użyje domyślnych danych logowania aplikacji, jeśli są one skonfigurowane. Najprostszym sposobem uwierzytelnienia interfejsu CLI w CI i innych środowiskach bez interfejsu graficznego jest skonfigurowanie domyślnych danych logowania aplikacji.

(Starsza wersja) Użyj FIREBASE_TOKEN

Możesz też uwierzytelnić się za pomocą FIREBASE_TOKEN. Jest to mniej bezpieczne rozwiązanie niż domyślne dane logowania aplikacji i nie jest już zalecane.

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

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

    firebase login:ci
  3. Otwórz podany adres URL, a potem 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 CLI.

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

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

    • 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.
      Kolejność wczytywania tokena jest następująca: flaga, zmienna środowiskowa, wybrany projekt Firebase.

Inicjowanie projektu Firebase

Wiele typowych zadań wykonywanych za pomocą wiersza poleceń, takich jak wdrażanie w projekcie Firebase, wymaga katalogu projektu. Katalog projektu tworzysz za pomocą polecenia firebase init. Katalog projektu jest zwykle taki sam jak katalog główny kontroli źródła. Po uruchomieniu polecenia firebase init zawiera plik konfiguracyjny 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 Firebase CLI poprosi Cię o wykonanie tych zadań:

  • Wybierz domyślny projekt Firebase.

    Ten krok łączy bieżący katalog projektu z projektem Firebase, dzięki czemu polecenia dotyczące projektu (np. firebase deploy) są wykonywane w odpowiednim projekcie Firebase.

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

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

    Na tym etapie musisz skonfigurować określone pliki dla wybranych produktów. Więcej informacji o tych konfiguracjach znajdziesz w dokumentacji konkretnego produktu (np. Hosting). Pamiętaj, że w każdej chwili możesz uruchomić polecenie firebase init, aby skonfigurować więcej usług Firebase.

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

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

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

Plik firebase.json

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

Plik firebase.json jest wymagany do wdrażania zasobów za pomocą interfejsu wiersza poleceń Firebase, ponieważ określa, które pliki i ustawienia z katalogu projektu są wdrażane w projekcie Firebase. Niektóre ustawienia można zdefiniować w katalogu projektu lub w Firebasekonsoli, dlatego upewnij się, że rozwiązujesz wszelkie potencjalne konflikty wdrażania.

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

Poniżej znajdziesz przykład pliku firebase.json z ustawieniami domyślnymi, jeśli podczas inicjowania wybierzesz Firebase Hosting, Cloud FirestoreCloud Functions for Firebase (z wybranymi opcjami kodu źródłowego 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"
    ]
  }
}

Domyślnie używana jest flaga firebase.json, ale możesz przekazać flagę --config PATH, aby określić alternatywny plik konfiguracji.

Konfiguracja wielu baz danych Cloud Firestore

Po uruchomieniu polecenia 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 kilka baz danych Cloud Firestore, zmień plik firebase.json, aby powiązać różne pliki źródłowe indeksu bazy danych Cloud Firestore Security Rules z każdą bazą danych. Zmodyfikuj plik za pomocą tablicy JSON, która będzie zawierać po jednym wpisie dla każdej bazy danych.

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

Cloud Functions plików do zignorowania podczas wdrażania

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

Lista plików domyślnie ignorowanych w formacie JSON:

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

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

Zarządzanie aliasami projektu

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

Dodawanie aliasu projektu

Gdy podczas inicjowania projektu wybierzesz projekt Firebase, automatycznie zostanie mu przypisany alias default. Aby jednak umożliwić uruchamianie poleceń dotyczących projektu w innym projekcie Firebase, ale nadal korzystać z tego samego katalogu projektu, uruchom to polecenie w katalogu projektu:

firebase use --add

To polecenie wyświetli prośbę o wybranie innego projektu Firebase i przypisanie go jako 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 tych poleceń w katalogu projektu.

Polecenie Opis
firebase use Wyświetlanie listy obecnie zdefiniowanych aliasów w katalogu projektu
firebase use \
PROJECT_ID|ALIAS
Kieruje wszystkie polecenia do uruchomienia w określonym projekcie Firebase.
Interfejs wiersza poleceń używa tego projektu jako „aktywnego projektu”.
firebase use --clear Czyści aktywny projekt.

Przed uruchomieniem innych poleceń interfejsu wiersza poleceń uruchom polecenie firebase use PROJECT_ID|ALIAS, aby ustawić nowy aktywny projekt.

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

Możesz zastąpić projekt, który jest obecnie aktywny, przekazując flagę --project w dowolnym poleceniu interfejsu CLI. Na przykład możesz skonfigurować interfejs CLI tak, aby działał w projekcie Firebase, któremu przypisano alias staging. Jeśli chcesz uruchomić jedno polecenie w projekcie Firebase, do którego przypisano alias prod, możesz na przykład uruchomić polecenie firebase deploy --project=prod.

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

Z reguły należy .firebasercsprawdzić plik w systemie kontroli wersji, aby umożliwić zespołowi udostępnianie aliasów projektu. W przypadku projektów open source lub szablonów startowych nie należy jednak zwykle sprawdzać pliku .firebaserc.

Jeśli masz projekt deweloperski, z którego korzystasz tylko Ty, możesz przekazywać flagę --project z każdym poleceniem lub uruchamiać firebase use PROJECT_ID bez przypisywania aliasu do projektu Firebase.

Lokalne udostępnianie i testowanie projektu Firebase

Przed wdrożeniem projektu Firebase w wersji produkcyjnej możesz go wyświetlić i przetestować pod adresami URL hostowanymi lokalnie. Jeśli chcesz przetestować tylko wybrane funkcje, możesz użyć listy rozdzielonej przecinkami w parametrze polecenia firebase serve.

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

firebase serve --only hosting

Emulowanie projektu za pomocą lokalnych funkcji HTTP

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

  • 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 na innych urządzeniach 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 komputerze, ale nie z innych urządzeń w sieci. Jeśli chcesz przeprowadzić test na innych urządzeniach lokalnych, użyj flagi --host, np.:

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

Wdrażanie w projekcie Firebase

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

  • Nowe wersje Twoich witryn Firebase Hosting
  • Nowe, zaktualizowane lub istniejące Cloud Functions for Firebase
  • Nowe lub zaktualizowane schematy i złącza dla Firebase Data Connect
  • Reguły dotyczące Firebase Realtime Database
  • Reguły dotyczące Cloud Storage for Firebase
  • Reguły dotyczące Cloud Firestore
  • Indeksy dla: Cloud Firestore

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

firebase deploy

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

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

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

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

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

Konflikty wdrożenia reguł zabezpieczeń

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

Innym sposobem na uniknięcie konfliktów wdrażania jest użycie wdrażania częściowego i zdefiniowanie reguł tylko w konsoli Firebase.

Limity wdrożenia

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

Cofanie wdrożenia

Możesz wycofać wdrożenie Firebase Hosting na Firebase Hostingstronie projektu, wybierając działanie Wycofaj w przypadku wybranej wersji.

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

Wdrażanie konkretnych usług Firebase

Jeśli chcesz wdrożyć tylko określone usługi lub funkcje Firebase, możesz użyć listy rozdzielonej przecinkami we flagach w poleceniu firebase deploy. Na przykład to polecenie wdraża Firebase Hostingtreści iCloud Storage reguły bezpieczeństwa.

firebase deploy --only hosting,storage

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

Składnia flagi Usługa lub funkcja została wdrożona
--only hosting Treści (Firebase Hosting)
--only database Firebase Realtime Database reguły
--only dataconnect Firebase Data Connect schematów i łączników,
--only storage Cloud Storage for Firebase reguły
--only firestore Cloud Firestore reguły i indeksy dla wszystkich skonfigurowanych baz danych;
--only functions Cloud Functions for Firebase (możliwe są bardziej szczegółowe wersje tego oznaczenia)

Wdrażanie określonych funkcji

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

Możesz na przykład napisać te funkcje, aby zdefiniować groupAgroupB:

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

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

W tym przykładzie w osobnym pliku functions/groupB.js znajdują się dodatkowe funkcje, które definiują funkcje w pliku groupB. Przykład:

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

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

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

firebase deploy --only functions:groupA

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

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

Usuwanie funkcji

Wiersz poleceń Firebase obsługuje te polecenia i opcje 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ę 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

  • Omija prośbę o potwierdzenie:

    firebase functions:delete FUNCTION-1_NAME --force

Konfigurowanie zadań skryptowych przed wdrożeniem i po nim

Możesz połączyć skrypty powłoki z poleceniem firebase deploy, aby wykonywać zadania przed wdrożeniem lub po nim. Na przykład skrypt przed wdrożeniem może przekształcać kod TypeScript na JavaScript, a element hook po wdrożeniu może powiadamiać administratorów o wdrożeniu nowych treści w witrynie na Firebase Hosting.

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

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

"hosting": {
  // ...

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

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

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

Możesz skonfigurować punkty zaczepienia predeploypostdeploy dla dowolnych zasobów, które możesz wdrożyć. Pamiętaj, że uruchomienie polecenia firebase deploy wywołuje wszystkie zadania wykonywane przed wdrożeniem i po jego zakończeniu zdefiniowane w pliku firebase.json. Aby uruchomić tylko te zadania, które są powiązane z określoną usługą Firebase, użyj poleceń częściowego wdrażania.

Zarówno wywołanie predeploy, jak i postdeploy powoduje wyświetlenie w terminalu standardowych danych wyjściowych i strumieni błędów skryptów. W przypadku niepowodzenia pamiętaj o tych kwestiach:

  • Jeśli hak przed wdrożeniem nie zostanie wykonany zgodnie z oczekiwaniami, wdrożenie zostanie anulowane.
  • Jeśli wdrożenie nie powiedzie się z jakiegokolwiek powodu, wywołania postdeploy nie zostaną uruchomione.

Zmienne środowiskowe

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

  • $GCLOUD_PROJECT: identyfikator aktywnego projektu.
  • $PROJECT_DIR: katalog główny zawierający plik firebase.json
  • $RESOURCE_DIR: (tylko w przypadku skryptów hostingfunctions) lokalizacja katalogu zawierającego zasoby Hosting lub Cloud Functions, które mają zostać wdrożone.

Zarządzanie wieloma instancjami Realtime Database

Projekt Firebase może mieć wieleFirebase Realtime Database instancji. Domyślnie polecenia interfejsu wiersza poleceń wchodzą w interakcję 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. Flaga --instance jest obsługiwana przez te polecenia:

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

Polecenia – materiały referencyjne

Polecenia administracyjne interfejsu wiersza poleceń

Polecenie Opis
pomoc Wyświetla informacje pomocy dotyczące interfejsu wiersza poleceń lub konkretnych poleceń.
init Łączy nowy projekt Firebase z bieżącym katalogiem i go konfiguruje. To polecenie tworzy w bieżącym katalogu plik konfiguracji firebase.json.
login Uwierzytelnia interfejs CLI za pomocą Twojego konta Google. 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życia w środowiskach nieinteraktywnych.
wyloguj Wylogowuje konto Google z interfejsu wiersza poleceń.
otwórz Otwiera przeglądarkę z odpowiednimi zasobami projektu.
projects:list Zawiera 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

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

Wdrażanie i lokalne środowisko programistyczne

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

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

App Distribution polecenia

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

App Hosting polecenia

Polecenie Opis
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
Tworzy kolekcję zarządzanych zasobów połączonych z jednym kodem źródłowym, który obejmuje backend App Hosting. Opcjonalnie możesz określić istniejącą aplikację internetową Firebase za pomocą jej identyfikatora Firebase.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Pobiera szczegółowe informacje o usłudze backendu, w tym publiczny adres URL.
apphosting:backends:list \
--project PROJECT_ID
Pobiera listę wszystkich aktywnych backendów powiązanych z projektem.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Usuwa backend z projektu.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Eksportuje obiekty tajne do użycia w emulacji aplikacji.
Domyślnie są to obiekty tajne przechowywane w apphosting.yaml. Możesz też użyć --secrets, aby określić dowolne środowisko, które ma odpowiedni plik apphosting.ENVIRONMENT_NAME.yaml.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Tworzy wdrożenie wywoływane ręcznie.
Opcjonalnie możesz określić ostatnie zatwierdzenie w gałęzi lub konkretne zatwierdzenie. Jeśli nie podano żadnych opcji, wyświetli się lista gałęzi do wyboru.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
przechowuje materiały tajne w usłudze Secret Manager;
Opcjonalnie podaj ścieżkę do pliku, z którego mają być odczytywane dane obiektu tajnego. Ustaw wartość _, aby odczytywać dane obiektu tajnego ze standardowego wejścia.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
Przyznaje kontu usługi backendu dostęp do podanego obiektu tajnego, aby można było uzyskać do niego dostęp w czasie kompilacji lub działania App Hosting.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Pobiera metadane obiektu tajnego i jego wersji.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
uzyskuje dostęp do wartości obiektu tajnego na podstawie obiektu tajnego i jego wersji; Domyślnie uzyskuje dostęp do najnowszej wersji.

Polecenia Authentication (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 stronie auth:import i auth:export.
auth:import Importuje konta użytkowników z pliku JSON lub CSV do aktywnego projektu. Więcej informacji znajdziesz na stronie auth:import i auth:export.

Cloud Firestore polecenia

Polecenie Opis
firestore:locations

Wyświetl listę dostępnych lokalizacji bazy danych Cloud Firestore.

firestore:databases:create DATABASE_ID

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

Polecenie przyjmuje te flagi:

  • --location <region name>, aby określić lokalizację wdrożenia bazy danych. Pamiętaj, że możesz uruchomić polecenie firebase firestore:locations, aby wyświetlić listę dostępnych lokalizacji. Wymagany.
  • --delete-protection <deleteProtectionState> aby zezwolić na usunięcie określonej bazy danych lub temu zapobiec. 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świetl listę baz danych w projekcie Firebase.

firestore:databases:get DATABASE_ID

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

firestore:databases:update DATABASE_ID

Aktualizowanie konfiguracji bazy danych w określonej bazie danych w projekcie Firebase.

Wymagana jest co najmniej 1 flaga. Polecenie przyjmuje te flagi:

  • --delete-protection <deleteProtectionState> aby zezwolić na usunięcie określonej bazy danych lub temu zapobiec. 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

Usuń bazę danych w projekcie Firebase.

firestore:indexes

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

Polecenie przyjmuje ten flagę:

  • --database DATABASE_ID, aby określić nazwę bazy danych, dla której mają zostać wyświetlone indeksy. Jeśli nie podasz żadnej wartości, zostaną wyświetlone indeksy domyślnej bazy danych.
firestore:delete

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

Pamiętaj, że usuwanie danych Cloud Firestore za pomocą interfejsu wiersza poleceń wiąże się z kosztami odczytu i usuwania. Więcej informacji znajdziesz w artykule Informacje o rozliczeniach Cloud Firestore.

Polecenie przyjmuje ten flagę:

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

Cloud Functions for Firebase polecenia

Polecenie Opis
functions:config:clone Klonuje środowisko innego projektu w aktywnym projekcie Firebase.
functions:config:get Pobiera istniejące wartości konfiguracji Cloud Functions aktywnego projektu.
functions:config:set Przechowuje wartości konfiguracji środowiska wykonawczego Cloud Functions aktywnego projektu.
functions:config:unset Usuwa wartości z konfiguracji środowiska wykonawczego aktywnego projektu.
functions:log Odczytuje dzienniki z wdrożonego Cloud Functions.

Więcej informacji znajdziesz w dokumentacji konfiguracji środowiska.

Crashlytics polecenia

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

Data Connect polecenia

Te polecenia i ich zastosowania są szczegółowo opisane w Data Connectprzewodniku po interfejsie CLI.

Polecenie Opis
dataconnect:services:list Wyświetla listę wszystkich wdrożonych usług Data Connect w projekcie Firebase.
dataconnect:sql:diff \
SERVICE_ID
Wyświetla różnice między lokalnym schematem Data Connect a schematem bazy danych Cloud SQL dla określonej usługi.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Migruje schemat bazy danych Cloud SQL, aby pasował do schematu lokalnego.Data Connect
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Przyznaje rolę SQL określonemu użytkownikowi lub adresowi e-mail konta usługi.
W przypadku flagi --role rolą SQL do przyznania jest jedna z tych ról: owner, writer lub reader.
W przypadku flagi --email podaj adres e-mail użytkownika lub konta usługi, któremu chcesz przyznać rolę.
dataconnect:sdk:generate Generuje pakiety SDK z określonymi typami dla Twoich złączy Data Connect.

Extensions polecenia

Polecenie Opis
ext Wyświetla informacje o tym, jak używać poleceń Firebase Extensions.
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
Wyświetla szczegółowe informacje o rozszerzeniu.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Dodaje nową instancję rozszerzenia do pliku manifestu rozszerzenia.
ext:list Wyświetla wszystkie instancje rozszerzeń zainstalowane w projekcie Firebase.
Wyświetla identyfikator instancji każdego rozszerzenia.
ext:uninstall \
EXTENSION_INSTANCE_ID
Usuwa instancję rozszerzenia z pliku manifestu rozszerzenia.
ext:update \
EXTENSION_INSTANCE_ID
Aktualizuje instancję rozszerzenia do najnowszej wersji w pliku manifestu rozszerzenia.
ext:export Eksportuje wszystkie zainstalowane instancje rozszerzeń z projektu do pliku manifestu rozszerzenia.

Extensions polecenia wydawcy

Polecenie Opis
ext:dev:init Inicjuje szkielet kodu dla nowego rozszerzenia w bieżącym katalogu.
ext:dev:list \
PUBLISHER_ID
Wyświetla listę wszystkich rozszerzeń przesłanych przez wydawcę.
ext:dev:register Rejestruje projekt Firebase jako projekt wydawcy rozszerzeń.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Wycofuje wersje rozszerzeń, 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 podasz predykatu wersji, wszystkie wersje tego rozszerzenia zostaną wycofane.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Cofa wycofanie wersji rozszerzeń, 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 podasz predykatu wersji, cofniesz wycofanie wszystkich wersji tego rozszerzenia.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Przesyła nową wersję rozszerzenia.
ext:dev:usage \
PUBLISHER_ID
Wyświetla liczbę instalacji i dane o użytkowaniu rozszerzeń przesłanych przez wydawcę.

Hosting polecenia

Polecenie Opis
hosting:disable

Przestaje wyświetlać ruch Firebase Hosting w aktywnym projekcie Firebase.

Po uruchomieniu tego polecenia w Hostingadresie URL projektu pojawi się komunikat „Nie znaleziono witryny”.

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

Tworzy nową witrynę Hosting 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 ten flagę:--app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Usuwa określoną Hosting witrynę.

Przed usunięciem witryny interfejs CLI 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 Hosting witrynie.

firebase hosting:sites:list

Wyświetla listę wszystkich witryn Hosting w aktywnym projekcie Firebase.

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

Tworzy nowy kanał podglądu w domyślnej Hosting witrynie przy użyciu określonegoCHANNEL_ID

To polecenie nie zostanie wdrożone na kanale.

firebase hosting:channel:delete \
CHANNEL_ID

Usuwa określony kanał wersji przedpremierowej.

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

firebase hosting:channel:deploy \
CHANNEL_ID

wdraża Hostingtreści i konfigurację na określonym kanale podglądu;

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

firebase hosting:channel:list Zawiera listę wszystkich kanałów (w tym kanału „live”) w domyślnej witrynie Hosting.
firebase hosting:channel:open \
CHANNEL_ID
Otwiera przeglądarkę z adresem URL określonego kanału lub zwraca adres URL, jeśli otwarcie w przeglądarce nie jest możliwe.
Klonowanie wersji
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Klonuje ostatnio wdrożoną wersję na określonym kanale „źródłowym” na określony kanał „docelowy”.

To polecenie wdraża też aplikację w określonym kanale „target”. Jeśli kanał „target” jeszcze nie istnieje, to polecenie utworzy 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

Klonuje określoną wersję na określony kanał „docelowy”.

To polecenie wdraża też aplikację w określonym kanale „target”. Jeśli kanał „target” jeszcze nie istnieje, to polecenie utworzy nowy kanał podglądu w witrynie „target” Hosting przed wdrożeniem na kanale.

Symbol VERSION_ID znajdziesz w Hosting panelu w Firebase konsoli.

Realtime Database polecenia

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

Po utworzeniu instancji możesz nimi zarządzać w sposób opisany w artykule Zarządzanie wieloma instancjami Realtime Database.

Polecenie Opis
database:get Pobiera dane z bazy danych aktywnego projektu i wyświetla je w formacie JSON. Obsługuje zapytania dotyczące zindeksowanych danych.
database:instances:create Tworzy instancję bazy danych o określonej nazwie. Akceptuje opcję --location, która umożliwia utworzenie bazy danych w określonym regionie. Nazwy regionów, których możesz użyć w tej opcji, znajdziesz w artykule Wybieranie lokalizacji dla projektu. Jeśli w bieżącym projekcie nie ma instancji bazy danych, pojawi się prośba o uruchomienie procesu firebase init w celu utworzenia instancji.
database:instances:list Wyświetla listę wszystkich instancji bazy danych w tym projekcie. Akceptuje opcję --location do wyświetlania baz danych w określonym regionie. Nazwy regionów, których możesz użyć w tej opcji, znajdziesz w artykule Wybieranie lokalizacji dla projektu.
database:profile Tworzy profil operacji w bazie danych aktywnego projektu. Więcej informacji znajdziesz w sekcji Typy operacji.Realtime Database
database:push Wysyła 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 w 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 w bazie danych aktywnego projektu. Pobiera dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń.

Remote Config polecenia

Polecenie Opis
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Wyświetla 10 najnowszych 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, version_number VERSION_NUMBER
--o, output FILENAME
Pobiera szablon według wersji (domyślnie najnowszej wersji) i wyświetla w tabeli nazwy grup parametrów, parametrów, warunków i wersji. Opcjonalnie możesz zapisać dane wyjściowe w określonym pliku za pomocą polecenia -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Przywraca szablon Remote Config do określonej poprzedniej wersji lub domyślnie do bezpośrednio poprzedniej wersji (bieżąca wersja – 1). Jeśli --force nie zostanie przekazana, przed wycofaniem zmian pojawi się pytanie T/N.