Interfejs wiersza poleceń Firebase (GitHub) udostępnia różne narzędzia do zarządzania projektami Firebase, wyświetlania ich i wdrażania w nich.
Przed użyciem interfejsu wiersza poleceń Firebase skonfiguruj projekt Firebase.
Skonfiguruj lub zaktualizuj interfejs wiersza poleceń
Instalowanie interfejsu wiersza poleceń Firebase
Interfejs wiersza poleceń Firebase możesz zainstalować za pomocą metody pasującej do Twojego systemu operacyjnego, poziomu doświadczenia lub przypadku użycia. Niezależnie od tego, jak zainstalujesz interfejs wiersza poleceń, masz dostęp do tych samych funkcji i polecenia firebase
.
Windows
Możesz zainstalować interfejs wiersza poleceń Firebase dla systemu Windows, korzystając z jednej z tych opcji:
Opcja | Opis | Zalecane dla... |
---|---|---|
samodzielny plik binarny | Pobierz samodzielny plik binarny interfejsu wiersza poleceń. Następnie możesz uzyskać dostęp do pliku wykonywalnego, aby otworzyć powłokę, w której możesz uruchomić polecenie firebase .
|
Nowi deweloperzy Deweloperzy, którzy nie korzystają z Node.js lub nie znają się z nim |
npm, | Użyj npm (menedżera pakietów węzłów), aby zainstalować interfejs wiersza poleceń i włączyć dostępne globalnie polecenie firebase .
|
Programiści korzystający z Node.js |
samodzielny plik binarny
Aby pobrać i uruchomić plik binarny interfejsu wiersza poleceń Firebase, wykonaj te czynności:
Pobierz plik binarny interfejsu wiersza poleceń Firebase dla systemu Windows.
Otwórz plik binarny, aby otworzyć powłokę, w której można uruchomić polecenie
firebase
.Przejdź do logowania się i testowania interfejsu wiersza poleceń.
npm
Aby użyć npm
(menedżera pakietów węzłów) do zainstalowania interfejsu wiersza poleceń Firebase, wykonaj te czynności:
Zainstaluj Node.js przy użyciu nvm-windows (menedżera wersji węzłów). Node.js zainstaluje automatycznie narzędzia do poleceń
npm
.Zainstaluj interfejs wiersza poleceń Firebase za pomocą
npm
, uruchamiając to polecenie:npm install -g firebase-tools
Włącza ono dostępne globalnie polecenie
firebase
.Przejdź do logowania się i testowania interfejsu wiersza poleceń.
macOS lub Linux
Interfejs wiersza poleceń Firebase możesz zainstalować na macOS lub Linux, korzystając z jednej z tych opcji:
Opcja | Opis | Zalecane dla... |
---|---|---|
skrypt automatycznej instalacji | Uruchom jedno polecenie, które automatycznie wykrywa system operacyjny, pobiera najnowszą wersję interfejsu wiersza poleceń, a następnie włącza dostępne globalnie polecenie firebase .
|
Nowi deweloperzy Programiści, którzy nie korzystają z Node.js lub nie znają się na tym, Automatyczne wdrożenia w środowisku CI/CD |
samodzielny plik binarny | Pobierz samodzielny plik binarny interfejsu wiersza poleceń. Następnie możesz skonfigurować i uruchomić plik binarny odpowiednio do swojego przepływu pracy. | W pełni konfigurowalne przepływy pracy za pomocą interfejsu wiersza poleceń |
npm, | Użyj npm (menedżera pakietów węzłów), aby zainstalować interfejs wiersza poleceń i włączyć dostępne globalnie polecenie firebase .
|
Programiści korzystający z Node.js |
skrypt automatycznej instalacji
Aby zainstalować interfejs wiersza poleceń Firebase za pomocą skryptu automatycznego instalacji, wykonaj te czynności:
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
.Przejdź do logowania się i testowania interfejsu wiersza poleceń.
Więcej przykładów i informacji o automatycznym skrypcie instalacji znajdziesz w kodzie źródłowym skryptu na stronie firebase.tools.
samodzielny plik binarny
Aby pobrać i uruchomić plik binarny interfejsu wiersza poleceń Firebase w swoim systemie operacyjnym, wykonaj te czynności:
Pobierz plik binarny wiersza poleceń Firebase na swój system operacyjny: macOS | Linux
(Opcjonalnie) Skonfiguruj dostępne globalnie polecenie
firebase
.- Zmień plik binarny na wykonywalny, uruchamiając polecenie
chmod +x ./firebase_tools
. - Dodaj ścieżkę pliku binarnego do ścieżki PATH.
- Zmień plik binarny na wykonywalny, uruchamiając polecenie
Przejdź do logowania się i testowania interfejsu wiersza poleceń.
npm
Aby użyć npm
(menedżera pakietów węzłów) do zainstalowania interfejsu wiersza poleceń Firebase, wykonaj te czynności:
Zainstaluj Node.js przy użyciu nvm (menedżera wersji węzłów).
Instalacja Node.js automatycznie instaluje narzędzia poleceńnpm
.Zainstaluj interfejs wiersza poleceń Firebase za pomocą
npm
, uruchamiając to polecenie:npm install -g firebase-tools
Włącza ono dostępne globalnie polecenie
firebase
.Przejdź do logowania się i testowania interfejsu wiersza poleceń.
Zaloguj się i przetestuj interfejs wiersza poleceń Firebase
Po zainstalowaniu interfejsu wiersza poleceń musisz się uwierzytelnić. Następnie możesz potwierdzić uwierzytelnianie, wyświetlając listę projektów Firebase.
Zaloguj się do Firebase za pomocą swojego konta Google, uruchamiając to polecenie:
firebase login
To polecenie łączy maszynę lokalną z Firebase i przyznaje Ci dostęp do projektów Firebase.
Sprawdź, czy interfejs wiersza poleceń jest prawidłowo zainstalowany i czy masz do niego dostęp, wyświetlając listę projektów Firebase. Uruchom to polecenie:
firebase projects:list
Wyświetlana lista powinna być taka sama jak projekty Firebase wymienione w konsoli Firebase.
Zaktualizuj do najnowszej wersji interfejsu wiersza poleceń
Zwykle chcesz używać najnowszej wersji interfejsu wiersza poleceń Firebase.
Sposób aktualizowania wersji interfejsu wiersza poleceń zależy od systemu operacyjnego i sposobu instalacji interfejsu wiersza poleceń.
Windows
- samodzielny plik binarny: pobierz nową wersję, a potem zastąp ją w swoim systemie;
- npm: uruchomienie
npm install -g firebase-tools
macOS
- automatyczny skrypt instalacji: uruchomienie
curl -sL https://firebase.tools | upgrade=true bash
, - samodzielny plik binarny: pobierz nową wersję i zastąp ją w swoim systemie;
- npm: uruchomienie
npm install -g firebase-tools
Linux
- automatyczny skrypt instalacji: uruchomienie
curl -sL https://firebase.tools | upgrade=true bash
, - samodzielny plik binarny: pobierz nową wersję i zastąp ją w swoim systemie;
- npm: uruchomienie
npm install -g firebase-tools
Używanie interfejsu wiersza poleceń z systemami CI
Interfejs wiersza poleceń Firebase wymaga przeglądarki do zakończenia uwierzytelniania, ale interfejs wiersza poleceń jest w pełni zgodny z CI i innymi środowiskami bez interfejsu graficznego.
Na komputerze z przeglądarką zainstaluj interfejs wiersza poleceń Firebase.
Rozpocznij proces logowania, uruchamiając to polecenie:
firebase login:ci
Otwórz podany adres URL, a następnie zaloguj się, używając 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żywaj tego tokena do uruchamiania poleceń
firebase
. Możesz użyć jednej z tych 2 opcji:Opcja 1. Zapisz token jako zmienną środowiskową
FIREBASE_TOKEN
. Twój system automatycznie użyje tokena.Opcja 2: uruchom w systemie CI wszystkie polecenia
firebase
z flagą--token TOKEN
.
Oto kolejność wczytywania tokena: flaga, zmienna środowiskowa, wymagany projekt Firebase.
Inicjowanie projektu Firebase
Wiele typowych działań wykonywanych za pomocą interfejsu wiersza poleceń, takich jak wdrażanie w projekcie Firebase, wymaga katalogu projektów. Katalog projektu tworzysz za pomocą polecenia firebase init
. Katalog projektu jest zwykle tym samym katalogiem co katalog główny kontroli źródła. Po uruchomieniu programu firebase init
katalog zawiera plik konfiguracji firebase.json
.
Aby zainicjować nowy projekt Firebase, uruchom to polecenie z katalogu aplikacji:
firebase init
Polecenie firebase init
przeprowadzi Cię przez proces konfigurowania katalogu projektów i niektórych usług Firebase. Podczas inicjowania projektu interfejs wiersza poleceń Firebase poprosi o wykonanie tych zadań:
Wybierz usługi Firebase, które chcesz skonfigurować w projekcie Firebase.
W tym kroku pojawi się prośba o ustawienie konfiguracji pod kątem konkretnych plików dla wybranych produktów. Więcej informacji o tych konfiguracjach znajdziesz w dokumentacji konkretnej usługi (np. Hosting). Pamiętaj, że zawsze możesz uruchomić
firebase init
później, aby skonfigurować więcej usług Firebase.Wybierz domyślny projekt Firebase.
Ten krok wiąże bieżący katalog projektu z projektem Firebase, dzięki czemu polecenia związane z tym projektem (np.
firebase deploy
) uruchamiają się w odpowiednim projekcie Firebase.Możesz też powiązać wiele projektów Firebase (np. projekt przejściowy i produkcyjny) z tym samym katalogiem projektu.
Pod koniec inicjowania Firebase automatycznie tworzy w katalogu głównym lokalnego katalogu aplikacji te 2 pliki:
Plik konfiguracji
firebase.json
, który zawiera konfigurację projektu.Plik
.firebaserc
zawierający aliasy Twojego projektu.
Plik firebase.json
Polecenie firebase init
tworzy plik konfiguracji firebase.json
w katalogu głównym katalogu projektu.
Plik firebase.json
jest wymagany do wdrażania zasobów za pomocą interfejsu wiersza poleceń Firebase, ponieważ określa, które pliki i ustawienia z katalogu projektu zostaną wdrożone w projekcie Firebase. Niektóre ustawienia można zdefiniować w katalogu projektu lub w konsoli Firebase, dlatego pamiętaj o rozwiązywaniu wszelkich potencjalnych konfliktów wdrażania.
Większość opcji Hostingu Firebase możesz skonfigurować bezpośrednio w pliku firebase.json
. Jednak w przypadku innych usług Firebase, które można wdrożyć za pomocą interfejsu wiersza poleceń Firebase, polecenie firebase init
tworzy określone pliki, w których można zdefiniować ustawienia tych usług, np. plik index.js
w przypadku Cloud Functions. Możesz też skonfigurować punkty zaczepienia przed wdrożeniem lub po wdrożeniu w pliku firebase.json
.
Poniżej znajdziesz przykładowy plik firebase.json
z ustawieniami domyślnymi, jeśli podczas inicjowania wybierzesz Hosting Firebase, Cloud Firestore i Cloud Functions dla Firebase (z wybranymi opcjami źródła TypeScript i Litt).
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
}
Gdy domyślnie używany jest firebase.json
, możesz przekazać flagę --config PATH
, aby określić alternatywny plik konfiguracji.
Konfiguracja wielu baz danych Cloud Firestore
Po uruchomieniu firebase init
plik firebase.json
będzie zawierał pojedynczy klucz firestore
odpowiadający domyślnej bazie danych projektu, jak pokazano powyżej.
Jeśli Twój projekt zawiera wiele baz danych Cloud Firestore, zmodyfikuj plik firebase.json
, aby powiązać różne reguły zabezpieczeń Cloud Firestore i pliki źródłowe indeksu bazy danych z każdą bazą danych. Zmodyfikuj plik za pomocą tablicy JSON, dodając po 1 wpisie na każdą bazę danych.
"firestore": [
{
"database": "(default)",
"rules": "firestore.default.rules",
"indexes": "firestore.default.indexes.json"
},
{
"database": "ecommerce",
"rules": "firestore.ecommerce.rules",
"indexes": "firestore.ecommerce.indexes.json"
}
],
Pliki w Cloud Functions, które mają być ignorowane przy wdrażaniu
W czasie wdrażania funkcji interfejs wiersza poleceń automatycznie określa listę plików w katalogu functions
, które mają być ignorowane. Zapobiega to wdrażaniu w backendzie niepotrzebnych plików, które mogłyby zwiększyć rozmiar danych wdrożenia.
Lista plików, które są domyślnie ignorowane, w formacie JSON:
"ignore": [
".git",
".runtimeconfig.json",
"firebase-debug.log",
"firebase-debug.*.log",
"node_modules"
]
Jeśli w usłudze firebase.json
dodasz własne wartości niestandardowe dla pola ignore
, pamiętaj, aby zachować powyższą listę plików (lub ją dodać, jeśli jej brakuje).
Zarządzanie aliasami projektów
Z tym samym katalogiem projektów możesz powiązać wiele projektów Firebase.
Możesz na przykład używać jednego projektu Firebase do środowiska testowego, a drugiego do środowiska produkcyjnego. Używając różnych środowisk projektu, możesz zweryfikować zmiany przed wdrożeniem w środowisku produkcyjnym. Polecenie firebase use
pozwala przełączać się między aliasami oraz tworzyć nowe.
Dodaj alias projektu
Jeśli podczas inicjowania projektu wybierzesz projekt Firebase, automatycznie zostanie mu przypisany alias domeny default
. Jeśli jednak chcesz zezwolić na wykonywanie poleceń związanych z konkretnym projektem w innym projekcie Firebase, ale nadal korzystać z tego samego katalogu, uruchom to polecenie z katalogu projektów:
firebase use --add
To polecenie wyświetla prośbę o wybranie innego projektu Firebase i przypisanie do niego aliasu. Przypisania aliasów są zapisywane w pliku .firebaserc
w katalogu projektu.
Użyj aliasów projektu
Aby użyć przypisanych aliasów projektów Firebase, uruchom dowolne z poniższych poleceń w katalogu projektów.
Polecenie | Opis |
---|---|
firebase use |
Wyświetl listę obecnie zdefiniowanych aliasów katalogu projektów |
firebase use \ |
Kieruje wszystkie polecenia do uruchomienia w określonym projekcie Firebase.
Interfejs wiersza poleceń używa tego projektu jako obecnie „aktywnego projektu”. |
firebase use --clear |
Czyści aktywny projekt.
Uruchom |
firebase use \ |
Usuwa alias z katalogu projektu. |
Możesz zastąpić projekt używany jako obecnie aktywny projekt, przekazując flagę --project
za pomocą dowolnego polecenia interfejsu wiersza poleceń. Przykład: możesz skonfigurować interfejs wiersza poleceń tak, aby uruchamiał się w projekcie Firebase, do którego przypisany jest alias staging
. Jeśli chcesz wykonać jedno polecenie w projekcie Firebase, do którego przypisany jest alias prod
, użyj na przykład polecenia
.
Kontrola źródła i aliasy projektów
Ogólnie rzecz biorąc, należy sprawdzić plik .firebaserc
w kontroli źródła, aby umożliwić zespołowi udostępnianie aliasów projektu. Jednak w przypadku projektów open source i szablonów startowych zasadniczo nie sprawdzaj pliku .firebaserc
.
Jeśli masz projekt programistyczny tylko do użytku, możesz przekazać flagę --project
przy każdym poleceniu lub uruchomić firebase use PROJECT_ID
bez przypisywania aliasu do projektu Firebase.
Udostępniaj i testuj projekt Firebase lokalnie
Zanim wdrożysz projekt Firebase w środowisku produkcyjnym, możesz go wyświetlić i przetestować na hostowanych lokalnie adresach URL. Jeśli chcesz testować tylko wybrane cechy, możesz użyć listy oddzielonej przecinkami w flagi w poleceniu firebase serve
.
Jeśli chcesz wykonać jedno z tych zadań, uruchom to polecenie z katalogu głównego lokalnego katalogu projektu:
- Wyświetl zawartość statyczną swojej aplikacji hostowanej w Firebase.
- Użyj Cloud Functions do generowania zawartości dynamicznej na potrzeby Hostingu Firebase i chcesz wykorzystać swoje produkcyjne (wdrożone) funkcje HTTP do emulacji Hostingu w lokalnym adresie URL.
firebase serve --only hosting
Emuluj projekt za pomocą lokalnych funkcji HTTP
Uruchom dowolne z poniższych poleceń w katalogu projektu, aby emulować projekt za pomocą lokalnych funkcji HTTP.
Aby emulować funkcje HTTP i hosting do testowania na lokalnych adresach URL, użyj jednego z tych poleceń:
firebase serve
firebase serve --only functions,hosting // uses a flag
Aby emulować tylko funkcje HTTP, użyj tego polecenia:
firebase serve --only functions
Przeprowadź test z innych urządzeń lokalnych
Domyślnie firebase serve
odpowiada tylko na żądania od localhost
. Oznacza to, że będziesz mieć dostęp do hostowanych treści w przeglądarce na komputerze, ale nie na innych urządzeniach w Twojej sieci. Jeśli chcesz przeprowadzić test na innych urządzeniach lokalnych, użyj flagi --host
w ten sposób:
firebase serve --host 0.0.0.0 // accepts requests to any host
Wdrażanie w projekcie Firebase
Interfejs wiersza poleceń Firebase zarządza wdrażaniem kodu i zasobów w projekcie Firebase i obejmuje:
- Nowe wersje Twoich witryn Hostingu Firebase
- Nowe, zaktualizowane lub istniejące funkcje Cloud Functions dla Firebase
- Reguły Bazy danych czasu rzeczywistego Firebase
- Reguły Cloud Storage dla Firebase
- Reguły Cloud Firestore
- Indeksy Cloud Firestore
Aby wdrożyć w projekcie Firebase, uruchom to polecenie z katalogu projektu:
firebase deploy
Opcjonalnie możesz dodać komentarz do każdego wdrożenia. Ten komentarz będzie wyświetlany wraz z innymi informacjami o wdrożeniu na stronie Hostingu Firebase Twojego projektu. Przykład:
firebase deploy -m "Deploying the best new feature ever."
Podczas korzystania z polecenia firebase deploy
pamiętaj o tych kwestiach:
Aby można było wdrożyć zasoby z katalogu projektu, katalog projektu musi zawierać plik
firebase.json
. Jest on tworzony automatycznie przez poleceniefirebase init
.Domyślnie
firebase deploy
tworzy wersję dla wszystkich zasobów, które można wdrożyć w katalogu projektu. Aby wdrożyć określone usługi lub funkcje Firebase, użyj częściowego wdrożenia.
Konflikty wdrażania reguł zabezpieczeń
W przypadku Bazy danych czasu rzeczywistego Firebase, Cloud Storage dla Firebase i Cloud Firestore reguły zabezpieczeń można definiować w lokalnym katalogu projektu lub w konsoli Firebase.
Innym sposobem uniknięcia konfliktów we wdrożeniu jest skorzystanie z częściowego wdrożenia i zdefiniowanie reguł tylko w konsoli Firebase.
Limity wdrożeń
Możliwe, że (choć mało prawdopodobne) przekroczysz limit, który ogranicza częstotliwość lub liczbę operacji wdrażania Firebase. Jeśli na przykład wdrażasz bardzo dużą liczbę funkcji, możesz otrzymać komunikat o błędzie HTTP 429 Quota
. Aby rozwiązać takie problemy, spróbuj użyć częściowego wdrożenia.
Wycofywanie wdrożenia
Możesz wycofać wdrożenie w Hostingu Firebase na stronie Hostingu Firebase swojego projektu, wybierając dla danej wersji działanie Cofnięcie.
Obecnie nie można wycofywać wersji reguł zabezpieczeń Bazy danych czasu rzeczywistego Firebase, Cloud Storage dla Firebase ani Cloud Firestore.
Wdróż określone usługi Firebase.
Jeśli chcesz wdrożyć tylko określone usługi lub funkcje Firebase, możesz użyć listy oddzielonej przecinkami we fladze polecenia firebase deploy
. Na przykład to polecenie wdraża treści Hostingu Firebase i reguły zabezpieczeń Cloud Storage.
firebase deploy --only hosting,storage
W tabeli poniżej znajdziesz listę usług i funkcji dostępnych do częściowego wdrożenia. Nazwy w flagach odpowiadają kluczom w pliku konfiguracji firebase.json
.
Składnia flag | Wdrożona usługa lub funkcja |
---|---|
--only hosting |
Treści w Hostingu Firebase |
--only database |
Reguły Bazy danych czasu rzeczywistego Firebase |
--only storage |
Reguły Cloud Storage dla Firebase |
--only firestore |
Reguły Cloud Firestore i indeksy dla wszystkich skonfigurowanych baz danych |
--only functions |
Cloud Functions dla Firebase (możliwe są bardziej szczegółowe wersje tej flagi) |
Wdrażanie określonych funkcji
Podczas wdrażania funkcji możesz ukierunkować konkretne funkcje. Przykład:
firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2
Możesz też pogrupować funkcje w grupy eksportu w pliku /functions/index.js
. Funkcje grupowania umożliwiają wdrażanie wielu funkcji za pomocą jednego polecenia.
Możesz na przykład napisać następujące funkcje, aby zdefiniować groupA
i groupB
:
var functions = require('firebase-functions');
exports.groupA = {
function1: functions.https.onRequest(...),
function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');
W tym przykładzie oddzielny plik functions/groupB.js
zawiera dodatkowe funkcje, które konkretnie definiują funkcje w obiekcie groupB
. Przykład:
var functions = require('firebase-functions');
exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);
W tym przykładzie możesz wdrożyć wszystkie funkcje groupA
, uruchamiając to polecenie z katalogu projektu:
firebase deploy --only functions:groupA
Możesz też ustawić kierowanie na konkretną funkcję w grupie, uruchamiając to polecenie:
firebase deploy --only functions:groupA.function1,groupB.function4
Usuwanie funkcji
Interfejs wiersza poleceń Firebase obsługuje następujące polecenia i opcje usuwania wcześniej wdrożonych funkcji:
Usuwa wszystkie funkcje o podanej nazwie we wszystkich regionach:
firebase functions:delete FUNCTION-1_NAME
Usuwa określoną funkcję uruchomioną w regionie innym niż domyślny:
firebase functions:delete FUNCTION-1_NAME --region REGION_NAME
Usuwa więcej niż 1 funkcję:
firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME
Usuwa określoną grupę funkcji:
firebase functions:delete GROUP_NAME
Pomija prośbę o potwierdzenie:
firebase functions:delete FUNCTION-1_NAME --force
Konfigurowanie skryptowanych zadań przed wdrożeniem i po wdrożeniu
Skrypty powłoki możesz połączyć z poleceniem firebase deploy
, aby wykonywać zadania przed wdrożeniem lub po wdrożeniu. Na przykład skrypt wstępnego wdrożenia może przetranspilować kod TypeScript na kod JavaScript, a punkt zaczepienia po wdrożeniu może powiadomić administratorów o wdrożeniach nowych treści witryny w Hostingu Firebase.
Aby skonfigurować punkty zaczepienia przed wdrożeniem lub po wdrożeniu, dodaj skrypty bash do pliku konfiguracji firebase.json
. Możesz zdefiniować krótkie skrypty bezpośrednio w pliku firebase.json
lub odwoływać się do innych plików w katalogu projektu.
Na przykład ten skrypt jest wyrażeniem firebase.json
dla zadania po wdrożeniu, które wysyła wiadomość Slacka po pomyślnym wdrożeniu w Hostingu Firebase.
"hosting": {
// ...
"postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
"public": "public"
}
Plik skryptu messageSlack.sh
znajduje się w katalogu projektu i wygląda tak:
curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}' \https://SLACK_WEBHOOK_URL
Możesz skonfigurować punkty zaczepienia predeploy
i postdeploy
dla dowolnych zasobów, które można wdrożyć. Pamiętaj, że uruchomienie firebase deploy
aktywuje wszystkie zadania przed wdrożeniem i po wdrożeniu zdefiniowane w pliku firebase.json
. Aby uruchomić tylko zadania powiązane z konkretną usługą Firebase, użyj poleceń wdrożenia częściowego.
Zarówno punkty zaczepienia predeploy
, jak i postdeploy
wyświetlają w terminalu standardowe dane wyjściowe i strumienie błędów skryptów. W przypadku niepowodzenia zapoznaj się z tymi informacjami:
- Jeśli zaczepie przed wdrożeniem nie zakończy się zgodnie z oczekiwaniami, wdrożenie zostanie anulowane.
- Jeśli wdrożenie z jakiegoś powodu nie powiedzie się, punkty zaczepienia po wdrożeniu nie zostaną aktywowane.
Zmienne środowiskowe
W skryptach działających w punktach zaczepienia przed wdrożeniem i po wdrożeniu dostępne są te zmienne środowiskowe:
$GCLOUD_PROJECT
: identyfikator aktywnego projektu$PROJECT_DIR
: katalog główny zawierający plikfirebase.json
$RESOURCE_DIR
: (tylko w przypadku skryptówhosting
ifunctions
) lokalizacja katalogu zawierającego zasoby Hostingu lub Cloud Functions, które mają zostać wdrożone
Zarządzanie wieloma instancjami bazy danych czasu rzeczywistego
Projekt Firebase może mieć wiele instancji Bazy danych czasu rzeczywistego Firebase. Domyślnie polecenia interfejsu wiersza poleceń współdziałają z domyślną instancją bazy danych.
Możesz jednak wchodzić w interakcje z instancją bazy danych inną niż domyślna, używając flagi --instance DATABASE_NAME
--instance
:
firebase database:get
firebase database:profile
firebase database:push
firebase database:remove
firebase database:set
firebase database:update
Dokumentacja poleceń
Polecenia administracyjne interfejsu wiersza poleceń
Polecenie | Opis |
---|---|
pomoc | Wyświetla informacje o interfejsie wiersza poleceń lub konkretnych poleceniach. |
init | Powoduje powiązanie i konfigurowanie nowego projektu Firebase w bieżącym katalogu.
To polecenie tworzy w bieżącym katalogu plik konfiguracji firebase.json . |
login | Uwierzytelnianie interfejsu wiersza poleceń na koncie Firebase. Wymaga dostępu do przeglądarki. Aby zalogować się do interfejsu wiersza poleceń w środowiskach zdalnych, które nie zezwalają na dostęp do interfejsu localhost , użyj flagi --no-localhost |
login:ci | Generuje token uwierzytelniania do użytku w środowiskach nieinteraktywnych. |
wyloguj się | Wylogowuje interfejs wiersza poleceń z konta Firebase. |
otwarte | Otwiera przeglądarkę do odpowiednich zasobów projektu. |
projekty:lista | Wyświetla listę wszystkich projektów Firebase, do których masz dostęp. |
użyj | Ustawia aktywny projekt Firebase na potrzeby interfejsu wiersza poleceń. Zarządza aliasami projektów. |
Polecenia do zarządzania projektami
Polecenie | Opis | |
---|---|---|
Zarządzanie projektami Firebase | ||
projects:addfirebase | Dodaje zasoby Firebase do istniejącego projektu Google Cloud. | |
projekty:tworzenie | Tworzy nowy projekt Google Cloud, a następnie dodaje do niego zasoby Firebase. | |
projekty:lista | Wyświetla listę wszystkich projektów Firebase, do których masz dostęp. | |
Zarządzanie aplikacjami Firebase (iOS, Android i internetem) | ||
apps:create, | Tworzy nową aplikację Firebase w aktywnym projekcie. | |
apps:lista | Wyświetla listę aplikacji Firebase zarejestrowanych w aktywnym projekcie. | |
apps:sdkconfig, | Drukuje konfigurację usług Google aplikacji Firebase. | |
setup:internet | Wycofano. Zamiast tego użyj apps:sdkconfig i podaj web jako argument platformy.Drukuje konfigurację usług Google aplikacji internetowej Firebase. |
|
Zarządzanie haszami certyfikatów SHA (tylko Android) | ||
apps:android:sha:create \ FIREBASE_APP_ID SHA_HASH |
Dodaje określony hasz certyfikatu SHA do określonej aplikacji Firebase na Androida. | |
apps:android:sha:delete \ FIREBASE_APP_ID SHA_HASH |
Usuwa podany hasz certyfikatu SHA z określonej aplikacji Firebase na Androida. | |
apps:android:sha:list \ FIREBASE_APP_ID |
Wyświetla hasze certyfikatów SHA dla określonej aplikacji Firebase na Androida. |
Wdrażanie i programowanie lokalne
Te polecenia pozwalają wdrożyć witrynę Hostingu Firebase i korzystać z niej.
Polecenie | Opis |
---|---|
wdrażaj | Wdraża kod i zasoby z katalogu projektu w aktywnym projekcie. W przypadku Hostingu Firebase wymagany jest plik konfiguracji firebase.json .
|
wyświetlanie | Uruchamia lokalny serwer WWW z konfiguracją Hostingu Firebase.
W przypadku Hostingu Firebase wymagany jest plik konfiguracji firebase.json . |
Polecenia Rozpowszechniania aplikacji
Polecenie | Opis |
---|---|
appdistribution:distribution \ --app FIREBASE_APP_ID |
Udostępnia kompilację testerom. |
appdistribution:testers:dodaj | Dodaje testerów do projektu. |
appdistribution:testers:remove | Usuwa testerów z projektu. |
Polecenia 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 jedną bazą kodu, która tworzą backend App Hosting. Opcjonalnie podaj identyfikator istniejącej aplikacji internetowej Firebase. |
apphosting:backends:get \
BACKEND_ID --project PROJECT_ID --location REGION |
Pobiera określone szczegóły 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. |
apphosting:secrets:set \ KEY --project PROJECT_ID --location REGION --data-file Data file |
Przechowuje materiały obiektu tajnego w usłudze Secret Manager. Opcjonalnie możesz podać ścieżkę pliku, z której mają być odczytywane dane obiektu tajnego. Ustaw jako _ , aby odczytywać tajne dane ze standardowych danych wejściowych.
|
apphosting:secrets:grantaccess \ KEY --project PROJECT_ID BACKEND_ID --location REGION |
Przyznaje kontowi usługi backendu dostęp do podanego obiektu tajnego, aby usługa App Hosting miała dostęp do niego w czasie kompilacji lub działania. |
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 z uwzględnieniem jego wersji i jego wersji. Domyślnie dostępna jest najnowsza wersja. |
Polecenia uwierzytelniania (zarządzanie użytkownikami)
Polecenie | Opis |
---|---|
auth:export | Eksportuje konta użytkowników aktywnego projektu do pliku JSON lub CSV. Więcej informacji znajdziesz na stronach auth:import i auth:export. |
auth:import | Importuje konta użytkowników z pliku JSON lub CSV do aktywnego projektu. Więcej informacji znajdziesz na stronach auth:import i auth:export. |
Polecenia Cloud Firestore
Polecenie | Opis |
---|---|
firestore:lokalizacje |
Wyświetl listę dostępnych lokalizacji dla bazy danych Cloud Firestore. |
firestore:databases:create DATABASE_ID |
Utwórz instancję bazy danych w trybie natywnym w projekcie Firebase. Polecenie przyjmuje te flagi:
|
firestore:databases:list, |
Wyświetl listę baz danych w projekcie Firebase. |
firestore:databases:get DATABASE_ID |
Pobierz konfigurację określonej bazy danych w projekcie Firebase. |
firestore:databases:update DATABASE_ID |
Zaktualizuj konfigurację określonej bazy danych w projekcie Firebase. Wymagana jest co najmniej 1 flaga. Polecenie przyjmuje te flagi:
|
firestore:databases:delete DATABASE_ID |
usunąć bazę danych w projekcie Firebase, |
firestore:indexes, |
Wyświetl listę indeksów bazy danych w projekcie Firebase. Polecenie przyjmuje tę flagę:
|
firestore:delete |
Usuwa dokumenty w bazie danych aktywnego projektu. Za pomocą interfejsu wiersza poleceń możesz rekurencyjnie usuwać wszystkie dokumenty w kolekcji. Pamiętaj, że usunięcie danych Cloud Firestore za pomocą interfejsu wiersza poleceń wiąże się z kosztami odczytu i usuwania. Więcej informacji znajdziesz w artykule o płatnościach za Cloud Firestore. Polecenie przyjmuje tę flagę:
|
Polecenia Cloud Functions dla Firebase
Polecenie | Opis |
---|---|
functions:config:clone, | Powoduje skopiowanie środowiska innego projektu do aktywnego projektu Firebase. |
functions:config:get. | Pobiera istniejące wartości konfiguracji funkcji w Cloud Functions aktywnego projektu. |
functions:config:set, | Zapisuje wartości konfiguracji środowiska wykonawczego funkcji w Cloud Functions aktywnego projektu. |
functions:config:unset | Usuwa wartości z konfiguracji środowiska wykonawczego aktywnego projektu. |
functions:log | Odczytuje logi z wdrożonych funkcji w Cloud Functions. |
Więcej informacji znajdziesz w dokumentacji konfiguracji środowiska.
Polecenia Crashlytics
Polecenie | Opis |
---|---|
crashlytics:mappingfile:generateid \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML |
Generuje unikalny identyfikator pliku mapowania w określonym pliku zasobów Androida (XML). |
crashlytics:mappingfile:upload \ --app=FIREBASE_APP_ID \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML \ PATH/TO/MAPPING_FILE.TXT |
Przesyła plik mapowania zgodny z ProGuard (TXT) dla tej aplikacji i wiąże go z identyfikatorem pliku mapowania zadeklarowanym w określonym pliku zasobów Androida (XML). |
crashlytics:symbols:upload \ --app=FIREBASE_APP_ID \ PATH/TO/SYMBOLS |
Generuje plik symboli zgodny z Crashlytics na potrzeby awarii biblioteki natywnej na Androidzie i przesyła go na serwery Firebase. |
Polecenia rozszerzeń
Polecenie | Opis |
---|---|
rozszerz | Wyświetla informacje o korzystaniu z poleceń Rozszerzeń w Firebase. Wyświetla instancje rozszerzeń zainstalowanych w aktywnym projekcie. |
ext:konfiguracja \ EXTENSION_INSTANCE_ID |
Ponownie konfiguruje wartości parametrów instancji rozszerzenia w pliku manifestu rozszerzenia. |
ext:informacje \ PUBLISHER_ID/EXTENSION_ID |
Wyświetla szczegółowe informacje o rozszerzeniu. |
ext:instalacja \ PUBLISHER_ID/EXTENSION_ID |
Dodaje nowe wystąpienie rozszerzenia do pliku manifestu rozszerzenia. |
ext:lista | Wyświetla listę wszystkich instancji rozszerzeń zainstalowanych w projekcie Firebase. Drukuje identyfikator instancji każdego rozszerzenia. |
ext:Odinstaluj \ EXTENSION_INSTANCE_ID |
Usuwa instancję rozszerzenia z pliku manifestu rozszerzenia. |
ext:update \ EXTENSION_INSTANCE_ID |
Aktualizuje instancję rozszerzenia do najnowszej wersji w pliku manifestu rozszerzenia. |
ext:eksport | Eksportuje wszystkie zainstalowane instancje rozszerzeń z Twojego projektu do pliku manifestu rozszerzenia. |
Polecenia wydawcy rozszerzeń
Polecenie | Opis |
---|---|
ext:dev:init | Inicjuje szkieletową bazę kodu dla nowego rozszerzenia w bieżącym katalogu. |
ext:dev:lista\ PUBLISHER_ID |
Drukuje listę wszystkich rozszerzeń przesłanych przez wydawcę. |
ext:dev:register | rejestruje projekt Firebase jako projekt wydawcy rozszerzeń; |
ext:dev:deprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
Wycofuje wersje rozszerzenia, które pasują do predykatu wersji. Predykat wersji może być pojedynczą wersją (np. 1.0.0 ) lub zakresem wersji (np. >1.0.0 ).Jeśli nie podano predykatu wersji, wycofywane są wszystkie wersje danego rozszerzenia. |
ext:dev:undeprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
Cofnij wycofanie wersji rozszerzenia, które pasują do predykatu wersji. Predykat wersji może być pojedynczą wersją (np. 1.0.0 ) lub zakresem wersji (np. >1.0.0 ).Jeśli nie podano predykatu wersji, wycofaj wszystkie wersje danego rozszerzenia. |
ext:dev:upload \ PUBLISHER_ID/EXTENSION_ID |
Przesyła nową wersję rozszerzenia. |
ext:dev:użycie \ PUBLISHER_ID |
Wyświetla liczbę instalacji i dane o wykorzystaniu rozszerzeń przesłanych przez wydawcę. |
Polecenia hostingu
Polecenie | Opis |
---|---|
hosting:disable, |
Przestaje obsługiwać ruch w Hostingu Firebase w aktywnym projekcie Firebase. Po uruchomieniu tego polecenia w adresie URL Hostingu Twojego projektu wyświetli się komunikat „Nie znaleziono witryny”. |
Zarządzanie witrynami hostingowymi | |
firebase hosting:sites:create \ SITE_ID |
Tworzy nową witrynę Hostingu w aktywnym projekcie Firebase przy użyciu określonego atrybutu (Opcjonalnie) Określ istniejącą aplikację internetową Firebase, którą chcesz powiązać z nową witryną, przekazując tę flagę: |
firebase hosting:sites:delete \ SITE_ID |
Usuwa określoną witrynę Hostingu Przed usunięciem witryny interfejs wiersza poleceń wyświetli prośbę o potwierdzenie. (Opcjonalnie) Pomiń prośbę o potwierdzenie, przekazując te flagi: |
firebase hosting:sites:get \ SITE_ID |
Pobiera informacje o określonej witrynie Hostingu |
firebase hosting:sites:list |
Wyświetla listę wszystkich witryn Hostingu dla aktywnego projektu Firebase |
Zarządzanie kanałami podglądu | |
firebase hosting:channel:create \ CHANNEL_ID |
Tworzy nowy kanał podglądu w domyślnej witrynie Hostingu przy użyciu podanego parametru To polecenie nie jest wdrażane na kanale. |
firebase hosting:channel:delete \ CHANNEL_ID |
Usuwa określony kanał podglądu Nie możesz usunąć aktywnego kanału witryny. |
firebase hosting:channel:deploy \ CHANNEL_ID |
Wdraża zawartość i konfigurację Hostingu na określonym kanale podglądu Jeśli kanał podglądu jeszcze nie istnieje, przed wdrożeniem na kanale to polecenie tworzy kanał w witrynie Hostingu default. |
firebase hosting:channel:list | Wyświetla wszystkie kanały (w tym kanał „na żywo”) w domyślnej witrynie Hostingu. |
firebase hosting:channel:open \ CHANNEL_ID |
Otwiera przeglądarkę z adresem URL podanego kanału lub zwraca URL, jeśli nie można otworzyć w przeglądarce |
Klonowanie wersji | |
firebase hosting:clone \ SOURCE_SITE_ID:SOURCE_CHANNEL_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
Kopiuje ostatnio wdrożoną wersję w określonym kanale „źródłowym” do określonego kanału „docelowego” Polecenie to jest wdrażane również w określonym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie tworzy nowy kanał podglądu w witrynie „target” Hosting przed wdrożeniem na kanale. |
firebase hosting:clone \ SOURCE_SITE_ID:@VERSION_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
Kopiuje podaną wersję do określonego kanału „docelowego” Polecenie to jest wdrażane również w określonym kanale „docelowym”. Jeśli kanał „docelowy” jeszcze nie istnieje, to polecenie tworzy nowy kanał podglądu w witrynie „target” Hosting przed wdrożeniem na kanale.
|
Polecenia dotyczące bazy danych czasu rzeczywistego
Pamiętaj, że możesz utworzyć początkową, domyślną instancję bazy danych czasu rzeczywistego w konsoli Firebase albo za pomocą ogólnego firebase init
przepływu pracy lub konkretnego procesu firebase init database
.
Po utworzeniu instancji możesz nimi zarządzać, co zostało omówione w artykule Zarządzanie wieloma instancjami bazy danych czasu rzeczywistego.
Polecenie | Opis |
---|---|
database:get, | Pobiera dane z bazy danych aktywnego projektu i wyświetla je w formacie JSON. Obsługuje zapytania dotyczące zindeksowanych danych. |
database:instances:create | Tworzy instancję bazy danych o określonej nazwie. Akceptuje opcję --location tworzenia bazy danych w określonym regionie. Informacje o nazwach regionów, których chcesz używać w przypadku tej opcji, znajdziesz w artykule o wybieraniu lokalizacji do projektu.
Jeśli w bieżącym projekcie nie ma instancji bazy danych, pojawi się prośba o uruchomienie procesu firebase init , aby utworzyć instancję.
|
database:instances:list, | Wyświetl wszystkie instancje bazy danych w tym projekcie. Akceptuje opcję --location do wyświetlania listy baz danych w określonym regionie. Informacje o nazwach regionów, których chcesz używać w przypadku tej opcji, znajdziesz w artykule o wybieraniu lokalizacji do projektu. |
database:profil | Kompiluje profil operacji w bazie danych aktywnego projektu. Więcej informacji znajdziesz w artykule o typach operacji w bazie danych czasu rzeczywistego. |
database:push | Przekazuje nowe dane na listę w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń. |
database:usunięcie | Usuwa wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu. |
database:set (baza_danych:zbiór) | Zastępuje wszystkie dane w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń. |
database:update | Wykonuje częściową aktualizację w określonej lokalizacji w bazie danych aktywnego projektu. Przyjmuje dane wejściowe z pliku, STDIN lub argumentu wiersza poleceń. |
Polecenia Zdalnej konfiguracji
Polecenie | Opis |
---|---|
remoteconfig:versions:list \ – limit NUMBER_OF_VERSIONS |
Zawiera listę ostatnich 10 wersji szablonu. Określ 0 , aby zwrócić wszystkie istniejące wersje, lub opcjonalnie przekaż opcję --limit , aby ograniczyć liczbę zwracanych wersji. |
remoteconfig:get \ --v, numer_wersji VERSION_NUMBER --o, dane wyjściowe FILENAME |
Pobiera szablon według wersji (wartość domyślna to najnowsza wersja) i zapisuje w tabeli grupy parametrów, parametry, nazwy warunków i wersję. Opcjonalnie możesz zapisać dane wyjściowe w określonym pliku za pomocą funkcji -o, FILENAME . |
remoteconfig:rollback \ --v, numer_wersji VERSION_NUMBER --force |
Wycofuje szablon Zdalnej konfiguracji do określonego numeru poprzedniej wersji lub stosuje się domyślnie poprzednią wersję (obecną wersję -1). Jeśli zasada --force nie zostanie przekazana, przed przejściem do przywracania zmian wyświetli się prośba T/N. |