Ten dokument zawiera listę kontrolną sprawdzonych metod i kwestii, które należy wziąć pod uwagę przed udostępnieniem aplikacji w Firebase w środowisku produkcyjnym.
Ogólne sprawdzone metody publikowania
Przed wdrożeniem w środowisku produkcyjnym upewnij się, że wszystkie zmiany zostały przetestowane w Firebase Local Emulator Suite (w przypadku obsługiwanych usług). Dokładne testowanie może pomóc uniknąć kosztownych błędów.
Zacznij wymagać Firebase App Check w przypadku każdej usługi, która je obsługuje. App Check pomaga zapewnić, że tylko Twoje rzeczywiste aplikacje mogą uzyskiwać dostęp do Twoich usług backendu i zasobów.
Używaj Firebase Remote Config wdrożeń do bezpiecznego i stopniowego udostępniania nowych funkcji i aktualizacji aplikacji.
Jeśli jeszcze tego nie zrobisz, rozważ skonfigurowanie Firebase Crashlytics. Jest to lekki reporter awarii w czasie rzeczywistym, który pomaga śledzić, ustalać priorytety i rozwiązywać problemy ze stabilnością, które pogarszają jakość aplikacji.
Poznaj limity planu cenowego i ustaw alerty budżetowe
Upewnij się, że po przejściu do środowiska produkcyjnego nie przekroczysz limitów wykorzystania i limitów przydziału, zwłaszcza jeśli korzystasz z bezpłatnego planu Spark. Rozważ przejście na plan cenowy Blaze z płatnością według wykorzystania.
Skonfiguruj alerty budżetowe w projekcie.
Pamiętaj, że alerty budżetowe nie są limitami budżetu. Gdy zbliżasz się do skonfigurowanego progu lub go przekroczysz, otrzymasz alert, dzięki czemu będziesz mieć czas na podjęcie działań w aplikacji lub projekcie.
Rozważ skonfigurowanie zaawansowanych alertów i działań, np. funkcji, które wyłączą płatności w odpowiedzi na alerty.
Jeśli używasz Firebase AI Logic, Firebase App Hosting, Cloud Functions for Firebase i Firebase Extensions, zdecydowanie zalecamy również ustawienie limitów wydatków, które wstrzymają odpowiednią usługę, jeśli projekt osiągnie budżet ustawiony dla tej usługi.
Monitoruj wykorzystanie w panelach konkretnych usług lub w centralnym Wykorzystanie i płatności panelu w konsoli Firebase.
Upewnij się, że projekty w Firebase i aplikacje są zgodne ze sprawdzonymi metodami
Niezależnie od tego, czy jesteś deweloperem, czy pracujesz w dużym zespole, ważne jest, aby projekty w Firebase, aplikacje i zasoby były chronione, zabezpieczone i mogły się rozwijać wraz ze zmianami w zespole.
Warto pamiętać, że projekt w Firebase to w rzeczywistości projekt Google Cloud z włączonymi usługami i konfiguracjami Firebase. Oznacza to, że wiele sprawdzonych metod zalecanych przez Google Cloud ma zastosowanie również w przypadku Firebase.
Do tworzenia, testowania i wdrażania w środowisku produkcyjnym używaj różnych projektów w Firebase.
Staraj się ograniczyć nieoczekiwany dostęp do projektu powiązanego z aplikacją produkcyjną. Więcej informacji o konfigurowaniu przepływów pracy dewelopera.
Chroń ważne projekty, a zwłaszcza projekt powiązany z aplikacją produkcyjną.
Używaj blokad projektu aby chronić przed przypadkowym usunięciem projektu.
W Firebase konsoli zastosuj tag „Prod”, aby łatwiej identyfikować środowisko produkcyjne.
Jeśli jeszcze tego nie zrobisz, rozważ skonfigurowanie organizacji Google Cloud i dodanie do niej projektów w Firebase.
Dodaj więcej niż 1 właściciela do projektów w Firebase, zwłaszcza jeśli projekt nie znajduje się w organizacji Google Cloud. Dowiedz się więcej o tym, kiedy i jak przypisywać właścicieli projektu w Firebase.
Dodawaj członków projektu (czyli „podmioty”) jako grupy Google, a nie pojedynczo.
Korzystanie z grup ułatwia zbiorcze przypisywanie ról członkom zespołu oraz zarządzanie dostępem do projektu w Firebase, zwłaszcza jeśli członkowie zespołu zmieniają się lub odchodzą.
Przyznaj każdemu członkowi projektu (czyli „podmiotowi”) odpowiedni poziom dostępu do projektów w Firebase i zasobów. Więcej informacji znajdziesz w artykule Zarządzanie dostępem do projektu za pomocą Firebase IAM.
Upewnij się, że każdy członek projektu (czyli „podmiot”) skonfiguruje swoje preferencje tak, aby otrzymywać alerty o konkretnych usługach lub stanie projektu (np. o zmianach planu płatności lub limitach przydziału). Więcej informacji znajdziesz w artykule Otrzymywanie alertów Firebase.
Możesz też opcjonalnie dostosować „podstawowe kontakty” projektu jeśli chcesz, aby powiadomienia otrzymywali konkretni lub dodatkowi członkowie projektu. Jest to szczególnie przydatne, aby mieć pewność, że powiadomienia o zmianach dotyczących płatności, kwestii prawnych i usług będą otrzymywać nie tylko właściciele projektu.
Ogranicz klucze interfejsu API Firebase tylko do tych interfejsów API, które muszą znajdować się na liście dozwolonych interfejsów API klucza. Zapoznaj się też z informacjami o kluczach interfejsu API na liście kontrolnej zabezpieczeń Firebase.
Przygotuj konkretne usługi używane w aplikacji
Każda usługa używana w aplikacji może mieć określone wymagania, gdy jest używana w środowisku produkcyjnym.
Firebase AI Logic
- Zapoznaj się z listą kontrolną dotyczącą używania Firebase AI Logic w środowisku produkcyjnym.
Google Analytics
Zdefiniuj warunki odbiorców dla Google Analytics, aby zacząć zbierać dane analityczne od momentu uruchomienia aplikacji.
Rozważ włączenie eksportu danych Google Analytics do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować je do użycia we własnych narzędziach.
Ogranicz właściwości użytkownika do informacji, które będą istotne przez cały cykl życia aplikacji. Możesz utworzyć tylko określoną liczbę właściwości użytkownika, a nie można ich archiwizować.
Sprawdź ustawienia ról Google Analytics w przypadku Google Analytics usług i kont. Te uprawnienia są zarządzane oddzielnie od uprawnień i ról IAM projektu w Firebase.
Upewnij się, że identyfikator sklepu z aplikacjami i identyfikator zespołu (jeśli jest wymagany) są prawidłowe w Ustawieniach projektu w konsoli Firebase.
App Check
Upewnij się, że identyfikator zespołu jest prawidłowy w Ustawieniach projektu konsoli Firebase.
Jeśli jeszcze tego nie zrobisz, zacznij wymagać Firebase App Check w przypadku każdej usługi, która je obsługuje. App Check pomaga zapewnić, że tylko Twoje rzeczywiste aplikacje mogą uzyskiwać dostęp do Twoich usług backendu i zasobów.
Authentication
Wyłącz wszystkich dostawców których nie używasz (zwłaszcza uwierzytelnianie anonimowe).
Jeśli Twoja aplikacja korzysta z funkcji Zaloguj się przez Google, spersonalizuj swój ekran akceptacji OAuth.
Dostosuj domenę i nadawcę w usłudze wysyłania e-maili Authentication.
Jeśli korzystasz z usług weryfikacji SMS-ów Identity Platform, zacznij wymagać Firebase App Check i skonfiguruj zasadę regionu SMS-ów aby chronić aplikację przed nadużyciami SMS-ów.
Zaimplementuj obsługę błędów na platformach Apple w przypadku typowych Authentication błędów.
W Ustawieniach projektu w konsoli Firebase dodaj skrót SHA-1 wersji aplikacji. Skrót SHA-1 jest wymagany, jeśli aplikacja korzysta z logowania za pomocą numeru telefonu lub funkcji Zaloguj się przez Google (która wymaga klienta OAuth).
Dodaj kontrolę dostępu do domen, aby zapobiec nieautoryzowanemu użyciu. W szczególności zezwól na dostęp do domeny produkcyjnej w sekcji Authentication konsoli Firebase (jest to szczególnie ważne, jeśli używasz usług, które korzystają z Firebase Security Rules).
Cloud Firestore
Skonfiguruj swoje Cloud Firestore Security Rules, aby zapobiec przypadkowemu dostępowi do danych.
Użyj ProGuard do zmniejszania kodu w przypadku kompilacji do publikacji. Bez ProGuard pakiet SDK Cloud Firestore i jego zależności mogą zwiększyć rozmiar pliku APK.
Cloud Messaging
Rozważ włączenie eksportu danych Cloud Messaging do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować je do użycia we własnych narzędziach.
W konsoli Firebase prześlij klucz uwierzytelniania APNS dla Cloud Messaging w aplikacjach Apple. Jeśli używasz certyfikatów APNS, upewnij się, że został przesłany certyfikat APNS środowiska produkcyjnego.
Rozważ włączenie logowania kontrolnego w chmurze w przypadku Cloud Messaging aby móc generować logi kontrolne, które rejestrują działania administracyjne i dostęp do zasobów Google Cloud.
Pamiętaj, aby okresowo aktualizować pakiet SDK do najnowszej wersji, aby korzystać z nowych funkcji i aktualizacji zabezpieczeń.
Na serwerze aplikacji stosuj sprawdzone metody zarządzania tokenami rejestracji Cloud Messaging practices. Zapisuj tokeny rejestracji ze znacznikiem czasu, aktualizuj je w przypadku zmian i usuwaj nieaktualne tokeny (nieaktywne przez ponad miesiąc), aby zapewnić prawidłowe raportowanie dostarczania i skuteczne kierowanie wiadomości.
Podczas wysyłania wiadomości naCloud Messaging dużą skalę stosuj sprawdzone metody. Używaj interfejsu HTTP v1 API lub Firebase Admin SDK, implementuj wzrastający czas do ponowienia z jitterem w przypadku ponownych prób i przestrzegaj
Retry-Afternagłówków, aby uniknąć nagłych wzrostów ruchu i ograniczania liczby żądań.
Cloud Storage
- Skonfiguruj swoje Cloud Storage Security Rules, aby zapobiec przypadkowemu dostępowi do danych.
Crashlytics
Upewnij się, że każdy członek projektu (czyli "podmiot") skonfiguruje swoje preferencje tak, aby otrzymywać alerty o Crashlytics lub stanie projektu (np. o zmianach planu płatności lub limitach przydziału). Więcej informacji znajdziesz w artykule Otrzymywanie alertów Firebase.
Rozważ włączenie eksportu danych Crashlytics do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować je do użycia we własnych narzędziach.
(tylko natywne aplikacje na Androida i iOS) Rozważ włączenie pomocy AI w Crashlytics, aby szybciej zrozumieć przyczynę awarii i wiedzieć, co zrobić.
Prześlij plik dSYM dla kompilacji wersji do użycia w Crashlytics. Upewnij się, że Xcode może automatycznie przetwarzać pliki dSYM i je przesyłać.
Prześlij mapowanie ProGuard dla kompilacji wersji do użycia w Crashlytics. Przesyłanie jest możliwe za pomocą interfejsu wiersza poleceń.Firebase
Połącz Firebase z Google Play aby uzyskać bardziej szczegółowy wgląd w kondycję aplikacji na Androida. Możesz na przykład filtrować raporty o awariach aplikacji według ścieżki Google Play, co pozwoli Ci lepiej skupić się na konkretnych kompilacjach.
W przypadku kompilacji na Androida, które korzystają z IL2CPP, upewnij się, że przesyłasz symbole natywne dla każdej kompilacji, dla której chcesz mieć symbole, niezależnie od tego, czy nastąpiły zmiany w kodzie lub konfiguracji.
Dynamic Links
- Dynamic Links jest wycofywana, dlatego zalecamy migrację z tej usługi. Więcej informacji znajdziesz w najczęstszych pytaniach dotyczących wycofywania.
Firebase ML
Zapoznaj się z artykułem Przygotowywanie aplikacji Apple Firebase ML do środowiska produkcyjnego.
Zapoznaj się z artykułem Przygotowywanie aplikacji na Androida Firebase ML do środowiska produkcyjnego.
Performance Monitoring
Upewnij się, że każdy członek projektu (czyli "podmiot") skonfiguruje swoje preferencje tak, aby otrzymywać alerty o Performance Monitoring lub stanie projektu (np. o zmianach planu płatności lub limitach przydziału). Więcej informacji znajdziesz w artykule Otrzymywanie alertów Firebase.
Rozważ włączenie eksportu danych Performance Monitoring do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować je do użycia we własnych narzędziach.
Realtime Database
Skonfiguruj swoje Realtime Database Security Rules, aby zapobiec przypadkowemu dostępowi do danych.
Upewnij się, że jesteś gotowy(-a) na skalowanie. Realtime Database ma domyślny limit przydziału wystarczający dla większości aplikacji, ale niektóre aplikacje mogą potrzebować dodatkowej pojemności.
Skonfiguruj reguły ProGuard tak, aby działały z Realtime Database.
Remote Config
Upewnij się, że eksperymentalne Remote Config reguły nie wpływają na użytkowników wersji , a w aplikacji są rozpowszechniane odpowiednie ustawienia domyślne serwera i aplikacji.
Rozważ skonfigurowanie parametru
minimum_versionw Remote Config , aby móc wyświetlać użytkownikom prośbę o zaktualizowanie aplikacji lub wymagać od nich aktualizacji, jeśli wcześniejsze wersje staną się niezgodne lub zostaną wycofane.