Firebase Hosting integruje się z opcjami bezserwerowego przetwarzania danych, w tym Cloud Functions for Firebase i Cloud Run. Korzystając z Firebase Hosting w połączeniu z tymi opcjami, możesz hostować mikroserwisy, kierując żądania HTTPS w celu wywoływania funkcji i aplikacji w kontenerach, które będą działać w zarządzanym, bezpiecznym środowisku.
Cloud Functions for Firebase: piszesz i wdrażasz funkcję, czyli kod backendu, który reaguje na określony aktywator. Następnie za pomocą Firebase Hosting możesz kierować żądania HTTPS, aby wywoływać funkcję.
Cloud Run: piszesz i wdrażasz aplikację spakowaną w obraz kontenera. Następnie za pomocą Firebase Hosting możesz kierować żądania HTTPS, aby uruchamiać aplikację w kontenerze.
Przypadki użycia
Jak korzystać z opcji bezserwerowego przetwarzania danych w przypadku Firebase Hosting?
- Wyświetlanie treści dynamicznych – oprócz wyświetlania treści statycznych w witrynie Hosting możesz wyświetlać generowane dynamicznie odpowiedzi z funkcji lub aplikacji w kontenerze, która wykonuje logikę po stronie serwera. - Możesz na przykład wskazać wzorzec adresu URL (np. - /blog/<blog-post-id>) funkcji, która używa parametru identyfikatora posta na blogu w adresie URL do dynamicznego pobierania treści z bazy danych.
- Tworzenie interfejsów API REST – możesz utworzyć interfejs API mikroserwisu za pomocą funkcji. - Funkcje mogą na przykład obsługiwać funkcję logowania w Twojej witrynie. Gdy Twoja witryna jest hostowana pod adresem - /, każde żądanie wysłane na adres- /apijest przekierowywane do interfejsu API mikroserwisu. Przykład znajdziesz w tym przykładzie open source.
- Buforowanie treści dynamicznych – możesz skonfigurować buforowanie treści dynamicznych w globalnej sieci CDN. - Jeśli na przykład funkcja generuje nowe treści tylko okresowo, możesz przyspieszyć działanie aplikacji, zapisując w pamięci podręcznej wygenerowane treści na co najmniej krótki okres. Możesz też potencjalnie obniżyć koszty wykonania, ponieważ treści są dostarczane z sieci CDN, a nie za pomocą wywołanej funkcji lub aplikacji w kontenerze. 
- Wstępnie renderuj aplikacje jednostronicowe – możesz poprawić SEO i zoptymalizować udostępnianie w różnych sieciach społecznościowych, tworząc dynamiczne - metatagi. Więcej informacji znajdziesz w tym filmie lub w tym przykładzie open source.
Wybieranie opcji bezserwerowej
Zarówno Cloud Functions for Firebase, jak i Cloud Run integrują się z Firebase Hosting i oferują w pełni zarządzane, skalowane automatycznie i bezpieczne środowisko bezserwerowe, ale można ich używać w różnych przypadkach i przy różnym poziomie dostosowania konfiguracji.
W przypadku korzystania z dowolnej opcji bezserwerowej najlepiej jest umieścić ją w tej samej lokalizacji co serwery Firebase Hosting, wdrażając ją w jednym z tych regionów:
- us-west1
- us-central1
- us-east1
- europe-west1
- asia-east1
W tabeli poniżej znajdziesz podstawowe informacje o używaniu elementów Cloud Functions for Firebase i Cloud Run. Pełną listę limitów, ograniczeń i danych znajdziesz w szczegółowej dokumentacji każdego produktu (Cloud Functions for Firebase lub Cloud Run).
| Rozważanie zakupu | Cloud Functions for Firebase | Cloud Run | 
|---|---|---|
| Konfiguracja | Interfejs wiersza poleceń Firebase łączy wiele zadań w pojedyncze polecenia, od inicjowania po tworzenie i wdrażanie. | Kontenery oferują więcej opcji dostosowywania, więc zadania związane z konfiguracją, tworzeniem i wdrażaniem obejmują odrębne etapy. | 
| Środowisko wykonawcze | Wymaga Node.js, ale możesz określić, której wersji Node.js chcesz używać. | Podczas tworzenia kontenera określasz środowisko wykonawcze. | 
| Obsługa języków i frameworków | JavaScript i TypeScript Obsługiwane są platformy internetowe, takie jak Express.js. | Dowolny język obsługiwany przez pliki Dockerfile, w tym Go, Node.js, Python, Java i inne. Obsługiwane są platformy internetowe dla każdego języka. | 
| Limit czasu na żądanie Hosting | 60 sekund (patrz uwaga poniżej) | 60 sekund (patrz uwaga poniżej) | 
| Równoczesność | 1 żądanie na instancję funkcji (brak współbieżności na instancję) | Do 1000 równoczesnych żądań na instancję kontenera | 
| Płatności | Cloud Functions wykorzystanie Bezpłatny limit wykorzystania, ale wymagane jest Cloud Billingkonto. Zapoznaj się z najczęstszymi pytaniami dotyczącymi Firebase. | Cloud Run wykorzystanie +
        Container Registry miejsce na dane Bezpłatny limit wykorzystania, ale wymagane jest Cloud Billingkonto |