Lista kontrolna uruchomienia Firebase

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.

  • Sprawdź ogólną listę kontrolną zabezpieczeń Firebase.

  • 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

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

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-After nagłówków, aby uniknąć nagłych wzrostów ruchu i ograniczania liczby żądań.

Cloud Storage

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.

Firebase ML

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

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_version w 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.