Interfejs wiersza poleceń Firebase (GitHub) udostępnia różne narzędzia do wyświetlania projektów Firebase, zarządzania nimi i ich wdrażania.
Przed użyciem interfejsu wiersza poleceń Firebase skonfiguruj projekt Firebase.
Konfigurowanie lub aktualizowanie interfejsu wiersza poleceń
Instalowanie interfejsu wiersza poleceń Firebase
Interfejs wiersza poleceń Firebase możesz zainstalować, korzystając z metody pasującej do Twojego systemu operacyjnego, poziomu doświadczenia lub przypadku użycia. Niezależnie od sposobu instalacji interfejsu wiersza poleceń masz dostęp do tych samych funkcji i polecenia firebase
.
Windows
Możesz zainstalować interfejs wiersza poleceń Firebase dla systemu Windows, korzystając z jednej z tych opcji:
Opcja | Opis | Zalecane dla... |
---|---|---|
samodzielny plik binarny | Pobierz samodzielny plik binarny dla interfejsu wiersza poleceń. Potem uzyskasz dostęp do pliku wykonywalnego, aby otworzyć powłokę, w której będzie można uruchomić polecenie firebase .
|
Nowi deweloperzy Deweloperzy, którzy nie używają lub nie znają Node.js |
npm, | Użyj npm (menedżera pakietów węzłów), aby zainstalować interfejs wiersza poleceń i włączyć dostępne globalnie polecenie firebase .
|
Deweloperzy używający Node.js |
samodzielny plik binarny
Aby pobrać i uruchomić plik binarny interfejsu wiersza poleceń Firebase:
Pobierz plik binarny interfejsu wiersza poleceń Firebase dla systemu Windows.
Uzyskaj dostęp do pliku binarnego, aby otworzyć powłokę, w której możesz uruchomić polecenie
firebase
.Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.
npm
Aby zainstalować interfejs wiersza poleceń Firebase za pomocą npm
(menedżera pakietów węzłów), wykonaj te czynności:
Zainstaluj Node.js za pomocą nvm-windows (menedżera wersji węzła). Instalacja Node.js powoduje automatyczne zainstalowanie narzędzi wiersza poleceń
npm
.Zainstaluj interfejs wiersza poleceń Firebase za pomocą
npm
, uruchamiając następujące polecenie:npm install -g firebase-tools
To polecenie włącza dostępne globalnie polecenie
firebase
.Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.
macOS lub Linux
Możesz zainstalować interfejs wiersza poleceń Firebase w systemie macOS lub Linux, korzystając z jednej z tych opcji:
Opcja | Opis | Zalecane dla... |
---|---|---|
skrypt automatycznej instalacji | Uruchom pojedyncze polecenie, które automatycznie wykryje system operacyjny, pobierze najnowszą wersję interfejsu wiersza poleceń, a następnie aktywuje dostępne globalnie polecenie firebase .
|
Nowi deweloperzy Deweloperzy, którzy nie używają Node.js lub ich nie znają Automatyczne wdrażanie w środowisku CI/CD |
samodzielny plik binarny | Pobierz samodzielny plik binarny dla interfejsu wiersza poleceń. Następnie możesz skonfigurować i uruchomić plik binarny zgodnie z Twoim przepływem pracy. | Możliwość pełnego dostosowania przepływów pracy za pomocą interfejsu wiersza poleceń |
npm, | Użyj npm (menedżera pakietów węzłów), aby zainstalować interfejs wiersza poleceń i włączyć dostępne globalnie polecenie firebase .
|
Deweloperzy używający Node.js |
skrypt automatycznej instalacji
Aby zainstalować interfejs wiersza poleceń Firebase za pomocą skryptu instalacji automatycznej, wykonaj te czynności:
Uruchom to polecenie cURL:
curl -sL https://firebase.tools | bash
Ten skrypt automatycznie wykrywa system operacyjny, pobiera najnowszą wersję interfejsu wiersza poleceń Firebase i włącza dostępne globalnie polecenie
firebase
.Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.
Więcej przykładów i szczegółów skryptu instalacji automatycznej znajdziesz w kodzie źródłowym skryptu na stronie firebase.tools.
samodzielny plik binarny
Aby pobrać i uruchomić plik binarny interfejsu wiersza poleceń Firebase w wersji dla Twojego systemu operacyjnego, wykonaj te czynności:
Pobierz plik binarny interfejsu wiersza poleceń Firebase dla swojego systemu operacyjnego: macOS | Linux
(Opcjonalnie) Skonfiguruj dostępne globalnie polecenie
firebase
.- Ustaw plik binarny jako wykonywalny, uruchamiając
chmod +x ./firebase_tools
. - Dodaj ścieżkę pliku binarnego do ścieżki PATH.
- Ustaw plik binarny jako wykonywalny, uruchamiając
Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.
npm
Aby zainstalować interfejs wiersza poleceń Firebase za pomocą npm
(menedżera pakietów węzłów), wykonaj te czynności:
Zainstaluj Node.js za pomocą nvm (menedżera wersji węzła).
Instalacja Node.js powoduje automatyczne zainstalowanie narzędzi poleceńnpm
.Zainstaluj interfejs wiersza poleceń Firebase za pomocą
npm
, uruchamiając następujące polecenie:npm install -g firebase-tools
To polecenie włącza dostępne globalnie polecenie
firebase
.Przejdź dalej, aby zalogować się i przetestować interfejs wiersza poleceń.
Zaloguj się i przetestuj interfejs wiersza poleceń Firebase
Po zainstalowaniu interfejsu wiersza poleceń musisz się uwierzytelnić. Potem możesz potwierdzić uwierzytelnianie, wyświetlając listę projektów Firebase.
Zaloguj się do Firebase, korzystając ze swojego konta Google, uruchamiając następujące polecenie:
firebase login
To polecenie połączy Twój komputer lokalny z Firebase i przyzna Ci dostęp do projektów Firebase.
Sprawdź, czy interfejs wiersza poleceń jest prawidłowo zainstalowany i uzyskuje dostęp do Twojego konta, dodając listę projektów Firebase. Uruchom to polecenie:
firebase projects:list
Wyświetlana lista powinna być taka sama jak projekty Firebase wymienione w konsoli Firebase.
Zaktualizuj do najnowszej wersji interfejsu wiersza poleceń
Zwykle najlepiej jest używać najnowszej wersji interfejsu wiersza poleceń Firebase.
Sposób aktualizowania wersji interfejsu wiersza poleceń zależy od systemu operacyjnego i sposobu instalacji interfejsu wiersza poleceń.
Windows
- samodzielny plik binarny: pobierz nową wersję i zastąp ją w systemie.
- npm: uruchomienie
npm install -g firebase-tools
macOS
- automatyczny skrypt instalacji: uruchom
curl -sL https://firebase.tools | upgrade=true bash
- samodzielny plik binarny: pobierz nową wersję, a następnie zastąp ją w systemie.
- npm: uruchomienie
npm install -g firebase-tools
Linux
- automatyczny skrypt instalacji: uruchom
curl -sL https://firebase.tools | upgrade=true bash
- samodzielny plik binarny: pobierz nową wersję, a następnie zastąp ją w systemie.
- npm: uruchomienie
npm install -g firebase-tools
Używanie interfejsu wiersza poleceń w systemach CI
Interfejs wiersza poleceń Firebase wymaga do przeprowadzenia uwierzytelniania przeglądarki, ale interfejs ten jest w pełni zgodny z CI i innymi środowiskami bez interfejsu graficznego.
Zainstaluj interfejs wiersza poleceń Firebase na komputerze z przeglądarką.
Rozpocznij proces logowania, uruchamiając następujące polecenie:
firebase login:ci
Otwórz podany adres URL, a następnie zaloguj się za pomocą konta Google.
Wydrukuj nowy token odświeżania. Nie będzie to miało wpływu na bieżącą sesję interfejsu wiersza poleceń.
Przechowuj token wyjściowy w bezpieczny, ale dostępny sposób w systemie CI.
Użyj tego tokena do uruchamiania poleceń
firebase
. Masz do wyboru 2 opcje:Opcja 1: zapisz token jako zmienną środowiskową
FIREBASE_TOKEN
. System automatycznie użyje tokena.Opcja 2. Uruchom wszystkie polecenia
firebase
z flagą--token TOKEN
w systemie CI.
Oto kolejność ładowania tokenów: flaga, zmienna środowiskowa, odpowiedni projekt Firebase.
Inicjowanie projektu Firebase
Wiele typowych zadań wykonywanych za pomocą interfejsu wiersza poleceń, takich jak wdrażanie w projekcie Firebase, wymaga katalogu projektów. Aby utworzyć katalog projektu, użyj polecenia firebase init
. Katalog projektu jest zwykle tym samym katalogiem co główny katalog źródłowy. Po uruchomieniu funkcji firebase init
znajduje się w nim plik konfiguracji firebase.json
.
Aby zainicjować nowy projekt Firebase, uruchom to polecenie w katalogu aplikacji:
firebase init
Polecenie firebase init
przeprowadzi Cię przez proces konfigurowania katalogu projektu i niektórych usług Firebase. Podczas inicjowania projektu interfejs wiersza poleceń Firebase
wyświetla prośbę o wykonanie tych zadań:
Wybierz usługi Firebase, które chcesz skonfigurować w projekcie Firebase.
W tym kroku wyświetli się prośba o ustawienie konfiguracji dla konkretnych plików dla wybranych produktów. Więcej informacji o tych konfiguracjach znajdziesz w dokumentacji konkretnej usługi (np. w artykule Hosting). Pamiętaj, że zawsze możesz uruchomić
firebase init
później, aby skonfigurować więcej usług Firebase.Wybierz domyślny projekt Firebase.
Ten krok wiąże bieżący katalog projektu z projektem Firebase, aby polecenia związane z projektem (np.
firebase deploy
) uruchamiały się w odniesieniu do odpowiedniego projektu Firebase.Możesz też powiązać wiele projektów Firebase (np. przejściowy i produkcyjny) z tym samym katalogiem projektu.
Po zakończeniu inicjowania Firebase automatycznie tworzy te 2 pliki w katalogu głównym lokalnego katalogu aplikacji:
Plik konfiguracji
firebase.json
z listą konfiguracji projektu.Plik
.firebaserc
, który zawiera aliasy Twojego projektu.
Plik firebase.json
Polecenie firebase init
tworzy plik konfiguracji firebase.json
w katalogu głównym projektu.
Plik firebase.json
jest wymagany do wdrażania zasobów za pomocą interfejsu wiersza poleceń Firebase, ponieważ określa, które pliki i ustawienia z katalogu projektu są wdrożone w projekcie Firebase. Niektóre ustawienia można zdefiniować w katalogu projektu lub w konsoli Firebase, dlatego pamiętaj o rozwiązaniu wszelkich potencjalnych konfliktów wdrożeń.
Większość opcji Hostingu Firebase możesz skonfigurować bezpośrednio w pliku firebase.json
. Jednak w przypadku innych usług Firebase, które można wdrożyć za pomocą interfejsu wiersza poleceń Firebase, polecenie firebase init
tworzy określone pliki, w których możesz określić ustawienia tych usług, np. plik index.js
dla Cloud Functions. W pliku firebase.json
możesz też skonfigurować punkty zaczepienia przed wdrożeniem lub po wdrożeniu.
Poniżej znajduje się przykładowy plik firebase.json
z ustawieniami domyślnymi, jeśli podczas inicjowania wybierzesz Hosting Firebase, Cloud Firestore i Cloud Functions dla Firebase (z wybranymi opcjami źródła i lintowania TypeScriptu).
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
}
Chociaż jest używany domyślnie firebase.json
, możesz przekazać flagę --config PATH
, aby określić alternatywny plik konfiguracji.
Konfiguracja wielu baz danych Cloud Firestore
Po uruchomieniu firebase init
plik firebase.json
będzie zawierać jeden klucz firestore
odpowiadający domyślnej bazie danych projektu, jak pokazano powyżej.
Jeśli Twój projekt zawiera wiele baz danych Cloud Firestore, zmodyfikuj plik firebase.json
, aby powiązać z każdą z nich różne reguły zabezpieczeń Cloud Firestore i pliki źródłowe indeksu baz danych. Zmodyfikuj plik za pomocą tablicy JSON z jednym wpisem dla każdej bazy danych.
"firestore": [
{
"database": "(default)",
"rules": "firestore.default.rules",
"indexes": "firestore.default.indexes.json"
},
{
"database": "ecommerce",
"rules": "firestore.ecommerce.rules",
"indexes": "firestore.ecommerce.indexes.json"
}
],
Pliki Cloud Functions, które mają być ignorowane podczas wdrażania
Podczas wdrażania funkcji interfejs wiersza poleceń automatycznie określa w katalogu functions
listę plików, które mają być ignorowane. Uniemożliwia to wdrażanie w backendzie zbędnych plików, które mogłyby zwiększyć rozmiar danych wdrożenia.
Domyślnie ignorowana lista plików w formacie JSON:
"ignore": [
".git",
".runtimeconfig.json",
"firebase-debug.log",
"firebase-debug.*.log",
"node_modules"
]
Jeśli dodasz własne wartości niestandardowe dla atrybutu ignore
w pliku firebase.json
, zachowaj (lub dodaj, jeśli nie ma) listę plików widoczną powyżej.
Zarządzanie aliasami projektów
Z tym samym katalogiem projektów możesz powiązać wiele projektów Firebase.
Możesz na przykład używać jednego projektu Firebase do testowania, a drugiego do środowiska produkcyjnego. Korzystając z różnych środowisk projektów, możesz sprawdzać zmiany przed wdrożeniem ich w środowisku produkcyjnym. Polecenie firebase use
pozwala przełączać się
między aliasami oraz tworzyć nowe.
Dodaj alias projektu
Jeśli podczas inicjowania projektu wybierzesz projekt Firebase, zostanie do niego automatycznie przypisany alias default
. Jeśli jednak chcesz, aby polecenia związane z projektem uruchamiały się w innym projekcie Firebase, ale nadal używałeś(-aś) tego samego katalogu projektu, uruchom to polecenie w katalogu projektu:
firebase use --add
Wyświetli się prośba o wybranie innego projektu Firebase i przypisanie do niego aliasu. Przypisania aliasów są zapisywane w pliku .firebaserc
w katalogu projektu.
Używanie aliasów projektów
Aby użyć przypisanych aliasów projektu Firebase, uruchom dowolne z poniższych poleceń z katalogu projektu.
Polecenie | Opis |
---|---|
firebase use |
Wyświetl listę obecnie zdefiniowanych aliasów katalogu projektu |
firebase use \ |
Kieruje wszystkie polecenia do określonego projektu Firebase.
Interfejs wiersza poleceń używa tego projektu jako obecnie „aktywnego projektu”. |
firebase use --clear |
Usuwa aktywny projekt.
Uruchom |
firebase use \ |
Usuwa alias z katalogu projektu. |
Używany obecnie projekt możesz zastąpić, przekazując flagę --project
z dowolnym poleceniem interfejsu wiersza poleceń. Na przykład: możesz skonfigurować interfejs wiersza poleceń tak, aby uruchamiał się w projekcie Firebase, któremu przypisano alias staging
. Jeśli chcesz uruchomić jedno polecenie w projekcie Firebase, do którego przypisany został alias prod
, możesz np. uruchomić polecenie
.
Element sterujący źródła i aliasy projektu
Ogólnie zalecamy sprawdzenie pliku .firebaserc
w kontroli źródła, aby umożliwić zespołowi udostępnianie aliasów projektów. W przypadku projektów open source lub szablonów startowych zasadniczo nie należy jednak sprawdzać pliku .firebaserc
.
Jeśli masz projekt programistyczny, który służy wyłącznie do Ciebie, możesz przekazać flagę --project
przy każdym poleceniu lub uruchomić firebase use PROJECT_ID
bez przypisywania aliasu do projektu Firebase.
Udostępnianie i testowanie projektu Firebase lokalnie
Przed wdrożeniem projektu Firebase w środowisku produkcyjnym możesz go wyświetlić i przetestować pod lokalnie hostowanych adresów URL. Jeśli chcesz przetestować tylko wybrane funkcje, możesz użyć listy rozdzielanej przecinkami we flagie w poleceniu firebase serve
.
Jeśli chcesz wykonać jedną z tych czynności, uruchom to polecenie w katalogu głównym lokalnego katalogu projektu:
- Wyświetl treści statyczne aplikacji hostowanej w Firebase.
- Używaj Cloud Functions do generowania zawartości dynamicznej na potrzeby Hostingu Firebase, a chcesz używać produkcyjnych (wdrożonych) funkcji HTTP do emulacji Hostingu pod lokalnym adresem URL.
firebase serve --only hosting
Emuluj projekt za pomocą lokalnych funkcji HTTP
Uruchom dowolne z tych poleceń z katalogu projektu, aby go emulować za pomocą lokalnych funkcji HTTP.
Aby emulować funkcje HTTP i hosting na potrzeby testowania lokalnych adresów URL, użyj jednego z tych poleceń:
firebase serve
firebase serve --only functions,hosting // uses a flag
Aby emulować tylko funkcje HTTP, użyj tego polecenia:
firebase serve --only functions
Testowanie z innych urządzeń lokalnych
Domyślnie firebase serve
odpowiada tylko na prośby, które wysyła localhost
. Oznacza to, że możesz korzystać z treści hostowanych w przeglądarce na komputerze, ale nie na innych urządzeniach w sieci. Jeśli chcesz przeprowadzić test z innego urządzenia lokalnego, użyj flagi --host
w ten sposób:
firebase serve --host 0.0.0.0 // accepts requests to any host
Wdróż w projekcie Firebase
Interfejs wiersza poleceń Firebase zarządza wdrażaniem kodu i zasobów w projekcie Firebase, w tym:
- Nowe wersje Twoich witryn Hostingu Firebase
- Nowe, zaktualizowane lub istniejące funkcje Cloud Functions dla Firebase
- Reguły Bazy danych czasu rzeczywistego Firebase
- Reguły Cloud Storage dla Firebase
- Reguły Cloud Firestore
- Indeksy dla Cloud Firestore
Aby przeprowadzić wdrożenie w projekcie Firebase, uruchom to polecenie z katalogu projektu:
firebase deploy
Do każdego wdrożenia możesz opcjonalnie dodać komentarz. Ten komentarz będzie wyświetlać się wraz z innymi informacjami o wdrożeniu na stronie Hostingu Firebase Twojego projektu. Przykład:
firebase deploy -m "Deploying the best new feature ever."
Podczas korzystania z polecenia firebase deploy
pamiętaj o tych kwestiach:
Aby można było wdrożyć zasoby z katalogu projektu, katalog projektu musi zawierać plik
firebase.json
. Ten plik jest tworzony automatycznie za pomocą poleceniafirebase init
.Domyślnie
firebase deploy
tworzy wersję dla wszystkich zasobów możliwych do wdrożenia w katalogu projektu. Aby wdrożyć określone usługi lub funkcje Firebase, skorzystaj z częściowego wdrożenia.
Konflikty wdrażania reguł zabezpieczeń
W przypadku Bazy danych czasu rzeczywistego Firebase, Cloud Storage dla Firebase i Cloud Firestore reguły zabezpieczeń możesz definiować w lokalnym katalogu projektu lub w konsoli Firebase.
Innym sposobem uniknięcia konfliktów wdrożenia jest użycie wdrożenia częściowego i definiowanie reguł tylko w konsoli Firebase.
Limity wdrożenia
Może się zdarzyć, że przekroczysz limit, który ogranicza częstotliwość lub liczbę operacji wdrażania Firebase. Na przykład podczas wdrażania bardzo dużej liczby funkcji możesz zobaczyć komunikat o błędzie HTTP 429 Quota
. Aby rozwiązać takie problemy, spróbuj przeprowadzić częściowe wdrożenie.
Wycofywanie wdrożenia
Możesz wycofać wdrożenie Hostingu Firebase na stronie Hostingu Firebase swojego projektu, wybierając dla wybranej wersji działanie Cofnij.
Obecnie nie można wycofywać wersji reguł zabezpieczeń Bazy danych czasu rzeczywistego Firebase, Cloud Storage dla Firebase ani Cloud Firestore.
Wdrażanie określonych usług Firebase
Jeśli chcesz wdrożyć tylko określone usługi lub funkcje Firebase, możesz użyć listy oddzielonej przecinkami we fladze w poleceniu firebase deploy
. Na przykład poniższe polecenie wdraża treści Hostingu Firebase i reguły zabezpieczeń Cloud Storage.
firebase deploy --only hosting,storage
W tabeli poniżej znajdziesz usługi i funkcje dostępne do częściowego wdrożenia. Nazwy w flagach odpowiadają kluczom w pliku konfiguracji firebase.json
.
Składnia flagi | Wdrożona usługa lub funkcja |
---|---|
--only hosting |
Treści Hostingu Firebase |
--only database |
Reguły Bazy danych czasu rzeczywistego Firebase |
--only storage |
Reguły Cloud Storage dla Firebase |
--only firestore |
Reguły Cloud Firestore i indeksy dla wszystkich skonfigurowanych baz danych |
--only functions |
Cloud Functions dla Firebase (to możliwe bardziej szczegółowe wersje tej flagi) |
Wdrażanie określonych funkcji
Podczas wdrażania funkcji możesz kierować reklamy na określone funkcje. Przykład:
firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2
Możesz też pogrupować funkcje w grupy eksportu w pliku /functions/index.js
. Funkcje grupowania pozwalają
wdrożyć wiele funkcji za pomocą jednego polecenia.
Na przykład możesz napisać te funkcje, by zdefiniować groupA
i groupB
:
var functions = require('firebase-functions');
exports.groupA = {
function1: functions.https.onRequest(...),
function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');
W tym przykładzie oddzielny plik functions/groupB.js
zawiera dodatkowe funkcje, które definiują funkcje dostępne w elemencie groupB
. Przykład:
var functions = require('firebase-functions');
exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);
W tym przykładzie możesz wdrożyć wszystkie funkcje groupA
, uruchamiając to polecenie z katalogu projektu:
firebase deploy --only functions:groupA
Możesz też ustawić kierowanie na konkretną funkcję w grupie, uruchamiając to polecenie:
firebase deploy --only functions:groupA.function1,groupB.function4
Usuwanie funkcji
Interfejs wiersza poleceń Firebase obsługuje następujące polecenia i opcje usuwania wcześniej wdrożonych funkcji:
Usuwa wszystkie funkcje, które pasują do określonej nazwy we wszystkich regionach:
firebase functions:delete FUNCTION-1_NAME
Usuwa określoną funkcję działającą w regionie innym niż domyślny:
firebase functions:delete FUNCTION-1_NAME --region REGION_NAME
Usuwa więcej niż 1 funkcję:
firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME
Usuwa określoną grupę funkcji:
firebase functions:delete GROUP_NAME
Pomija prośbę o potwierdzenie:
firebase functions:delete FUNCTION-1_NAME --force
Konfigurowanie zadań skryptów wykonywanych przed wdrożeniem i po wdrożeniu
Możesz połączyć skrypty powłoki z poleceniem firebase deploy
, aby wykonywać zadania przed wdrożeniem lub po wdrożeniu. Skrypt wstępnego wdrożenia może na przykład przekształcać kod TypeScript do JavaScriptu, a haczyk po wdrożeniu może powiadamiać administratorów o wdrażaniu nowych treści witryny w Hostingu Firebase.
Aby skonfigurować punkty zaczepienia przed wdrożeniem lub po wdrożeniu, dodaj skrypty bash do pliku konfiguracji firebase.json
. Krótkie skrypty możesz definiować bezpośrednio w pliku firebase.json
albo odwołać się do innych plików znajdujących się w katalogu projektu.
Na przykład poniższy skrypt jest wyrażeniem firebase.json
zadania po wdrożeniu, które wysyła wiadomość do Slacka po udanym wdrożeniu do Hostingu Firebase.
"hosting": {
// ...
"postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
"public": "public"
}
Plik skryptu messageSlack.sh
znajduje się w katalogu projektu i wygląda tak:
curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}' \https://SLACK_WEBHOOK_URL
Możesz skonfigurować punkty zaczepienia predeploy
i postdeploy
dla dowolnych zasobów, które możesz wdrożyć. Pamiętaj, że uruchomienie polecenia firebase deploy
aktywuje wszystkie zadania przed wdrożeniem i po wdrożeniu zdefiniowane w pliku firebase.json
. Aby uruchomić tylko te zadania związane z konkretną usługą Firebase, użyj poleceń częściowych wdrożenia.
Zarówno haczyki predeploy
, jak i postdeploy
wyświetlają w terminalu standardowe dane wyjściowe i strumieni błędów skryptów. W przypadku awarii pamiętaj o tych kwestiach:
- Jeśli punkt zaczepienia przed wdrożeniem nie zakończy się zgodnie z oczekiwaniami, wdrożenie zostanie anulowane.
- Jeśli wdrożenie nie powiedzie się z jakiegoś powodu, punkty zaczepienia po wdrożeniu nie zostaną aktywowane.
Zmienne środowiskowe
W skryptach działających w punktach zaczepienia przed wdrożeniem i po wdrożeniu dostępne są te zmienne środowiskowe:
$GCLOUD_PROJECT
: identyfikator aktywnego projektu.$PROJECT_DIR
: katalog główny zawierający plikfirebase.json
.$RESOURCE_DIR
: (tylko w przypadku skryptówhosting
ifunctions
) lokalizacja katalogu zawierającego zasoby Hostingu lub Cloud Functions do wdrożenia
Zarządzanie wieloma instancjami bazy danych czasu rzeczywistego
Projekt Firebase może mieć wiele instancji Bazy danych czasu rzeczywistego Firebase. Domyślnie polecenia interfejsu wiersza poleceń współdziałają z domyślną instancją bazy danych.
Możesz jednak korzystać z instancji bazy danych innej niż domyślna, używając flagi --instance DATABASE_NAME
--instance
:
firebase database:get
firebase database:profile
firebase database:push
firebase database:remove
firebase database:set
firebase database:update
Dokumentacja polecenia
Polecenia administracyjne interfejsu wiersza poleceń
Polecenie | Opis |
---|---|
pomoc | Wyświetla informacje pomocy dotyczące interfejsu wiersza poleceń lub konkretnych poleceń. |
init, | Przypisuje i konfiguruje nowy projekt Firebase w bieżącym katalogu.
To polecenie tworzy plik konfiguracji firebase.json w bieżącym katalogu. |
login | Uwierzytelnia interfejs wiersza poleceń na Twoim koncie Firebase. Wymaga dostępu do przeglądarki. Aby zalogować się w interfejsie wiersza poleceń w środowiskach zdalnych, które nie zezwalają na dostęp do localhost , użyj flagi --no-localhost |
login:ci | Generuje token uwierzytelniania do użytku w środowiskach nieinteraktywnych. |
wyloguj się | Wylogowuje interfejs wiersza poleceń z konta Firebase. |
otwórz | Otwiera w przeglądarce odpowiednie zasoby projektu. |
projects:lista | Wyświetla listę wszystkich projektów Firebase, do których masz dostęp. |
użyj | Konfiguruje aktywny projekt Firebase na potrzeby interfejsu wiersza poleceń. Zarządza aliasami projektów. |
Polecenia zarządzania projektem
Polecenie | Opis | |
---|---|---|
Zarządzanie projektami Firebase | ||
projects:dodajfirebase | Dodaje zasoby Firebase do istniejącego projektu Google Cloud. | |
projects:utwórz | Tworzy nowy projekt Google Cloud, a następnie dodaje do niego zasoby Firebase. | |
projects:lista | Wyświetla listę wszystkich projektów Firebase, do których masz dostęp. | |
Zarządzanie aplikacjami Firebase (iOS, Android, internet) | ||
apps:create: | Tworzy nową aplikację Firebase w aktywnym projekcie. | |
apps:list | Wyświetla listę zarejestrowanych aplikacji Firebase w aktywnym projekcie. | |
apps:sdkconfig | Drukuje konfigurację usług Google w aplikacji Firebase. | |
konfiguracja:internet | Wycofano. Zamiast tego użyj apps:sdkconfig i podaj web jako argument platformy.Wyświetla konfigurację usług Google aplikacji internetowej Firebase. |
|
Zarządzanie haszami certyfikatów SHA (tylko Android) | ||
apps:android:sha:create \ FIREBASE_APP_ID SHA_HASH |
Dodaje określony hasz certyfikatu SHA do określonej aplikacji Firebase na Androida. | |
apps:android:sha:delete \ FIREBASE_APP_ID SHA_HASH |
Usuwa podany hasz certyfikatu SHA z określonej aplikacji Firebase na Androida. | |
apps:android:sha:list \ FIREBASE_APP_ID |
Zawiera listę skrótów certyfikatów SHA dla określonej aplikacji Firebase na Androida. |
Wdrażanie i programowanie lokalne
Te polecenia pozwalają wdrożyć witrynę Hostingu Firebase i korzystać z niej.
Polecenie | Opis |
---|---|
wdróż | Wdraża kod i zasoby z katalogu projektu w aktywnym projekcie. W przypadku Hostingu Firebase wymagany jest plik konfiguracji firebase.json .
|
serwować | Powoduje uruchomienie lokalnego serwera WWW z konfiguracją Hostingu Firebase.
W przypadku Hostingu Firebase wymagany jest plik konfiguracji firebase.json . |
Polecenia Rozpowszechniania aplikacji
Polecenie | Opis |
---|---|
appdistribution:distribution \ --app FIREBASE_APP_ID |
Udostępnia kompilację testerom. |
appdistribution:testers:add | Dodaje testerów do projektu. |
appdistribution:testers:remove | Usuwa testerów z projektu. |
Polecenia App Hosting
Polecenie | Opis |
---|---|
apphosting:backends:create \ --project PROJECT_ID --location REGION --app APP_ID |
Tworzy zbiór zarządzanych zasobów połączonych z pojedynczą bazą kodu, która składa się z backendu App Hosting. Opcjonalnie wskaż istniejącą aplikację internetową Firebase, podając jej identyfikator. |
apphosting:backends:get \
BACKEND_ID --project PROJECT_ID --location REGION |
Pobiera określone szczegóły, w tym publiczny adres URL backendu. |
apphosting:backends:list \ --project PROJECT_ID |
Pobiera listę wszystkich aktywnych backendów powiązanych z projektem. |
firebase apphosting:backends:delete \
BACKEND_ID --project PROJECT_ID --location REGION |
Usuwa backend z projektu. |
apphosting:secrets:set \ KEY --project PROJECT_ID --location REGION --data-file Data file |
Przechowuje materiały tajny w usłudze Secret Manager. Opcjonalnie możesz podać ścieżkę pliku, z której będą odczytywane dane obiektu tajnego. Ustaw jako _ , aby odczytywać dane obiektu tajnego ze standardowych danych wejściowych.
|
apphosting:secrets:grantaccess \ KEY --project PROJECT_ID BACKEND_ID --location REGION |
Przyznaje kontom usługi backendu dostęp do podanego obiektu tajnego, dzięki czemu usługa App Hosting ma do niego dostęp w czasie kompilacji lub działania. |
apphosting:secrets:describe \ KEY --project PROJECT_ID |
Pobiera metadane obiektu tajnego i jego wersje. |
firebase apphosting:secrets:access \ KEY[@version] --project PROJECT_ID |
Uzyskuje dostęp do wartości obiektu tajnego z podaną jego wersją i jego wersją. Domyślnie używana jest najnowsza wersja. |
Polecenia uwierzytelniania (zarządzania użytkownikami)
Polecenie | Opis |
---|---|
auth:export | Eksportuje konta użytkowników aktywnego projektu do pliku JSON lub CSV. Więcej informacji znajdziesz na stronie auth:import i auth:export. |
auth:import | Importuje konta użytkowników z pliku JSON lub CSV do aktywnego projektu. Więcej informacji znajdziesz na stronie auth:import i auth:export. |
Polecenia Cloud Firestore
Polecenie | Opis |
---|---|
firestore:lokalizacje |
Wyświetl dostępne lokalizacje bazy danych Cloud Firestore. |
firestore:databases:create DATABASE_ID |
Utwórz w projekcie Firebase instancję bazy danych w trybie natywnym. Polecenie ma następujące flagi:
|
firestore:databases:list |
Wyświetlenie listy baz danych w projekcie Firebase. |
firestore:databases:get DATABASE_ID |
Pobierz konfigurację określonej bazy danych w projekcie Firebase. |
firestore:databases:update DATABASE_ID |
Zaktualizuj konfigurację określonej bazy danych w projekcie Firebase. Wymagana jest co najmniej 1 flaga. Polecenie ma następujące flagi:
|
firestore:databases:delete DATABASE_ID |
usunąć bazę danych z projektu Firebase, |
firestore:indexes |
Wyświetlać indeksy dla bazy danych w projekcie Firebase. Polecenie ma następującą flagę:
|
firestore:delete |
Usuwa dokumenty z bazy danych aktywnego projektu. Za pomocą interfejsu wiersza poleceń możesz cyklicznie usuwać wszystkie dokumenty z kolekcji. Pamiętaj, że usunięcie danych Cloud Firestore za pomocą interfejsu wiersza poleceń wiąże się z kosztami odczytu i usuwania. Więcej informacji znajdziesz w artykule o płatnościach za Cloud Firestore. Polecenie ma następującą flagę:
|
Polecenia Cloud Functions dla Firebase
Polecenie | Opis |
---|---|
functions:config:clone | Kopiuje środowisko innego projektu do aktywnego projektu Firebase. |
functions:config:get | Pobiera istniejące wartości konfiguracji funkcji w Cloud Functions aktywnego projektu. |
functions:config:set | Przechowuje wartości konfiguracji środowiska wykonawczego dla funkcji w Cloud Functions aktywnego projektu. |
functions:config:unset | Usuwa wartości z konfiguracji środowiska wykonawczego aktywnego projektu. |
functions:log | Odczytuje logi z wdrożonych funkcji w Cloud Functions. |
Więcej informacji znajdziesz w dokumentacji konfiguracji środowiska.
Polecenia Crashlytics
Polecenie | Opis |
---|---|
crashlytics:mappingfile:generateid \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML |
Generuje unikalny identyfikator pliku mapowania w określonym pliku zasobów Androida (XML). |
crashlytics:mappingfile:upload \ --app=FIREBASE_APP_ID \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML \ PATH/TO/MAPPING_FILE.TXT |
Przesyła plik mapowania zgodny z ProGuard (TXT) dla tej aplikacji i wiąże go z identyfikatorem pliku mapowania zadeklarowanym w określonym pliku zasobów Androida (XML). |
crashlytics:symbols:upload \ --app=FIREBASE_APP_ID \ PATH/TO/SYMBOLS |
Generuje plik symboli zgodny z Crashlytics na potrzeby awarii biblioteki natywnej na Androidzie i przesyła go na serwery Firebase. |
Polecenia dotyczące rozszerzeń
Polecenie | Opis |
---|---|
wewn. | Wyświetla informacje o korzystaniu z poleceń Rozszerzeń w Firebase. Wyświetla listę instancji rozszerzeń zainstalowanych w aktywnym projekcie. |
ext:configure \ EXTENSION_INSTANCE_ID |
Ponownie konfiguruje wartości parametrów instancji rozszerzenia w pliku manifestu rozszerzenia. |
ext:info \ PUBLISHER_ID/EXTENSION_ID |
Drukuje szczegółowe informacje o rozszerzeniu. |
ext:instalacja \ PUBLISHER_ID/EXTENSION_ID |
Dodaje nowe wystąpienie rozszerzenia do pliku manifestu rozszerzenia. |
ext:list | Wyświetla listę wszystkich instancji rozszerzeń zainstalowanych w projekcie Firebase. Wydrukuje identyfikator instancji każdego rozszerzenia. |
ext:odinstaluj \ EXTENSION_INSTANCE_ID |
Usuwa instancję rozszerzenia z pliku manifestu rozszerzenia. |
ext:update \ EXTENSION_INSTANCE_ID |
Aktualizuje instancję rozszerzenia do najnowszej wersji w pliku manifestu rozszerzenia. |
ext:export | Eksportuje wszystkie zainstalowane instancje rozszerzeń z projektu do pliku manifestu rozszerzenia. |
Polecenia wydawcy rozszerzeń
Polecenie | Opis |
---|---|
ext:dev:init | Inicjuje szkieletową bazę kodu dla nowego rozszerzenia w bieżącym katalogu. |
ext:dev:list \ PUBLISHER_ID |
Drukuje listę wszystkich rozszerzeń przesłanych przez wydawcę. |
ext:dev:register | Rejestruje projekt Firebase jako projekt wydawcy rozszerzeń. |
ext:dev:deprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
Wycofuje wersje rozszerzenia zgodne z predykatem wersji. Predykat wersji może być pojedynczą wersją (np. 1.0.0 ) lub zakresem wersji (np. >1.0.0 ).Jeśli nie podasz predykatu wersji, wycofuje wszystkie wersje tego rozszerzenia. |
ext:dev:undeprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
Wycofuje wersje rozszerzenia zgodne z predykatem wersji. Predykat wersji może być pojedynczą wersją (np. 1.0.0 ) lub zakresem wersji (np. >1.0.0 ).Jeśli nie podasz predykatu wersji, cofa wszystkie wersje tego rozszerzenia. |
ext:dev:upload \ PUBLISHER_ID/EXTENSION_ID |
Przesyła nową wersję rozszerzenia. |
ext:dev:użycie \ PUBLISHER_ID |
Wyświetla liczbę instalacji i dane o wykorzystaniu rozszerzeń przesłanych przez wydawcę. |
Polecenia hostingu
Polecenie | Opis |
---|---|
hosting:disable, |
Przestaje obsługiwać ruch Hostingu Firebase dla aktywnego projektu Firebase. Po uruchomieniu tego polecenia w adresie URL Hostingu Twojego projektu wyświetli się komunikat „Nie znaleziono witryny”. |
Zarządzanie witrynami w hostelu | |
firebase hosting:sites:create \ SITE_ID |
Tworzy nową witrynę w Hostingu w aktywnym projekcie Firebase za pomocą określonego zasobu ( (Opcjonalnie) Wskaż istniejącą aplikację internetową Firebase, którą chcesz powiązać z nową witryną, przesyłając tę flagę: |
firebase hosting:sites:delete \ SITE_ID |
Usuwa określoną witrynę w Hostingu Przed usunięciem witryny w interfejsie wiersza poleceń wyświetli się prośba o potwierdzenie. (Opcjonalnie) Pomiń prośbę o potwierdzenie, przekazując te flagi: |
firebase hosting:sites:get \ SITE_ID |
Pobiera informacje o określonej witrynie Hostingu |
firebase hosting:sites:list |
Wyświetla listę wszystkich witryn Hostingu dla aktywnego projektu Firebase |
Zarządzanie kanałami podglądu | |
firebase Hosting:channel:create \ CHANNEL_ID |
Tworzy nowy kanał podglądu w domyślnej witrynie Hostingu za pomocą podanego To polecenie nie jest wdrażane na kanale. |
firebase Hosting:channel:usuń \ CHANNEL_ID |
Usuwa określony kanał podglądu Nie możesz usunąć aktywnego kanału witryny. |
firebase hosting:channel:deploy \ CHANNEL_ID |
Wdraża Twoje treści i konfigurację z Hostingu w podanym kanale podglądu Jeśli kanał wersji testowej jeszcze nie istnieje, to polecenie utworzy kanał w domyślnej witrynie Hostingu przed wdrożeniem w kanale. |
firebase hosting:channel:list | Wyświetla wszystkie kanały (w tym kanał „aktywny”) w domyślnej witrynie Hostingu |
firebase hosting:channel:open \ CHANNEL_ID |
Otwiera w przeglądarce adres URL określonego kanału lub zwraca URL, jeśli nie można otworzyć go w przeglądarce |
Klonowanie wersji | |
firebase hosting:clone \ SOURCE_SITE_ID:SOURCE_CHANNEL_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
Kopiuje najnowszą wdrożoną wersję z określonego kanału „źródłowego” do podanego kanału „docelowego” To polecenie zostanie też wdrożone w podanym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie utworzy nowy kanał podglądu w „docelowej” witrynie Hostingu przed wdrożeniem w kanale. |
firebase hosting:clone \ SOURCE_SITE_ID:@VERSION_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
Kopiuje określoną wersję do określonego kanału „docelowego” To polecenie zostanie też wdrożone w podanym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie utworzy nowy kanał podglądu w „docelowej” witrynie Hostingu przed wdrożeniem w kanale.
|
Polecenia Bazy danych czasu rzeczywistego
Pamiętaj, że początkową, domyślną instancję Bazy danych czasu rzeczywistego możesz utworzyć w konsoli Firebase lub za pomocą ogólnego przepływu pracy firebase init
lub określonego procesu firebase init database
.
Po utworzeniu instancji możesz nimi zarządzać zgodnie z opisem w artykule Zarządzanie wieloma instancjami bazy danych czasu rzeczywistego.
Polecenie | Opis |
---|---|
database:get (baza_danych:get) | Pobiera dane z bazy danych aktywnego projektu i wyświetla je w formacie JSON. Obsługa zapytań dotyczących zindeksowanych danych. |
database:instances:create | Tworzy instancję bazy danych o podanej nazwie instancji. Akceptuje opcję --location do tworzenia bazy danych w określonym regionie. Aby dowiedzieć się, jak używać tej opcji nazw regionów, przeczytaj artykuł o wybieraniu lokalizacji dla projektu.
Jeśli w bieżącym projekcie nie ma żadnej instancji bazy danych, wyświetli się prośba o uruchomienie procesu firebase init w celu utworzenia instancji.
|
database:instances:list | Wyświetl wszystkie instancje baz danych w tym projekcie. Akceptuje opcję --location służącą do wyświetlania listy baz danych w określonym regionie. Aby dowiedzieć się, jak używać tej opcji nazw regionów, przeczytaj artykuł o wybieraniu lokalizacji dla projektu. |
database:profile | Tworzy profil operacji w bazie danych aktywnego projektu. Więcej informacji znajdziesz w artykule o typach operacji w bazie danych czasu rzeczywistego. |
database:push | Przekazuje nowe dane na listę w określonej lokalizacji w bazie danych aktywnego projektu. Pobiera dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń. |
database:remove | Usuwa wszystkie dane z określonej lokalizacji w bazie danych aktywnego projektu. |
database:set | Zastępuje wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu. Pobiera dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń. |
database:update | Wykonuje częściową aktualizację w określonej lokalizacji bazy danych aktywnego projektu. Pobiera dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń. |
Polecenia Zdalnej konfiguracji
Polecenie | Opis |
---|---|
remoteconfig:versions:list \ --limit NUMBER_OF_VERSIONS |
Zawiera listę 10 ostatnich wersji szablonu. Podaj 0 , aby zwrócić wszystkie istniejące wersje, lub opcjonalnie przekaż opcję --limit , aby ograniczyć liczbę zwracanych wersji. |
remoteconfig:get \ --v, numer wersji VERSION_NUMBER --o, dane wyjściowe FILENAME |
Pobiera szablon według wersji (domyślnie jest to najnowsza wersja) i umieszcza w tabeli grupy parametrów, parametry oraz nazwy warunków i wersję. Opcjonalnie możesz zapisać dane wyjściowe w określonym pliku za pomocą -o, FILENAME . |
remoteconfig:rollback \ --v, numer_wersji VERSION_NUMBER --force |
Przywraca szablon Zdalnej konfiguracji do określonego poprzedniego numeru lub domyślnie przywraca natychmiastową poprzednią wersję (bieżąca wersja -1). Jeśli --force nie zostanie przekroczony, przed przejściem do przywrócenia poprzedniej wersji wyświetli się prośba o T/N. |