Lista kontrolna uruchomienia Firebase

Ten dokument zawiera listę kontrolną najlepszych praktyk i kwestii, które należy wziąć pod uwagę przed udostępnieniem aplikacji w Firebase w wersji produkcyjnej.

Ogólne sprawdzone metody publikowania

  • Przed wdrożeniem w wersji produkcyjnej 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 wymuszać Firebase App Check w każdej usłudze, która je obsługuje. App Check pomaga zapewnić, że tylko Twoje rzeczywiste aplikacje mogą uzyskiwać dostęp do Twoich usług i zasobów backendu.

  • Zapoznaj się z 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 naprawiać problemy ze stabilnością, które pogarszają jakość aplikacji.

Poznaj limity abonamentu i ustaw alerty dotyczące budżetu

  • Upewnij się, że po przejściu do wersji produkcyjnej nie przekroczysz limitów wykorzystania i limitów przydziału, zwłaszcza jeśli korzystasz z bezpłatnego abonamentu Spark. Rozważ przejście na abonament Blaze z płatnością według wykorzystania.

  • Skonfiguruj alerty dotyczące budżetu w projekcie.

    • Pamiętaj, że alerty dotyczące budżetu nie są limitami budżetu. Alert będzie wysyłać powiadomienia, gdy zbliżasz się do skonfigurowanego progu lub go przekroczysz, aby umożliwić Ci podjęcie działań w aplikacji lub projekcie.

    • Rozważ skonfigurowanie zaawansowanych alertów i działań, takich jak funkcje, 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 i aplikacje Firebase są zgodne z najlepszymi praktykami

Niezależnie od tego, czy jesteś deweloperem, czy pracujesz w dużym zespole, ważne jest, aby projekty, aplikacje i zasoby Firebase 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 Firebase.

  • Do tworzenia, testowania i wdrażania w wersji produkcyjnej używaj różnych projektó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 konsoli Firebase zastosuj tag „Prod”, aby ułatwić identyfikowanie środowiska produkcyjnego.

  • Jeśli jeszcze tego nie zrobisz, rozważ skonfigurowanie organizacji Google Cloud i dodanie do niej projektów Firebase.

  • Dodaj więcej niż 1 właściciela do projektó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 do 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 i zasobów Firebase. Więcej informacji znajdziesz w artykule Zarządzanie dostępem do projektu za pomocą Firebase IAM.

  • Upewnij się, że każdy odpowiedni członek projektu (czyli „podmiot”) skonfiguruje swoje preferencje tak, aby otrzymywać alerty o konkretnych usługach lub stanie projektu (np. o zmianach abonamentu 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 w płatnościach, kwestiach prawnych i usługach będą otrzymywać nie tylko właściciele projektu.

  • Ogranicz klucze interfejsu API Firebase tylko do 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 kwestie, które należy wziąć pod uwagę, gdy jest używana w wersji produkcyjnej.

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 usługach i na kontach Google Analytics. Te uprawnienia są zarządzane oddzielnie od uprawnień i ról IAM projektu w Firebase.

  • Upewnij się, że identyfikator App Store 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 wymuszać Firebase App Check w każdej usłudze, która je obsługuje. App Check pomaga zapewnić, że tylko Twoje rzeczywiste aplikacje mogą uzyskiwać dostęp do Twoich usług i zasobów backendu.

Authentication

  • Wyłącz wszystkie usługi których nie używasz (zwłaszcza uwierzytelnianie anonimowe).

  • Jeśli Twoja aplikacja korzysta z Zaloguj się przez Google, spersonalizuj swój ekran akceptacji OAuth.

  • Dostosuj domenę i nadawcę w usłudze wysyłania e-maili Authentication.

  • Jeśli używasz usług weryfikacji SMS-ów Identity Platform , zacznij wymuszać Firebase App Check i skonfiguruj zasady dotyczące regionu SMS-ów , aby chronić aplikację przed nadużyciami SMS-ów.

  • Wdróż obsługę błędów na platformach Apple w przypadku typowych Authentication błędów.

  • Dodaj skrót SHA-1 wersji do certyfikatu podpisywania aplikacji w Ustawieniach projektu w konsoli Firebase. Skrót SHA-1 jest wymagany, jeśli aplikacja korzysta z logowania za pomocą numeru telefonu lub Zaloguj się przez Google (które wymaga klienta OAuth).

  • Dodaj kontrolę dostępu do swoich 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.

  • Prześlij klucz uwierzytelniania APNs do Cloud Messaging w aplikacjach Apple w Firebase konsoli. Jeśli używasz certyfikatów APNs, upewnij się, że przesłany został produkcyjny certyfikat APNs.

Cloud Storage

Crashlytics

  • Upewnij się, że każdy odpowiedni członek projektu (czyli „podmiot”) skonfiguruje swoje preferencje tak, aby otrzymywać alerty o Crashlytics lub stanie projektu (np. o zmianach abonamentu 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 podjąć odpowiednie działania.

  • Prześlij plik dSYM do kompilacji do publikacji, aby używać go w Crashlytics. Upewnij się, że Xcode może automatycznie przetwarzać pliki dSYM i je przesyłać.

  • Prześlij mapowanie ProGuard do kompilacji do publikacji, aby używać go 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 Google Play ścieżki, 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 wprowadzono zmiany w kodzie lub konfiguracji.

Firebase ML

Performance Monitoring

  • Upewnij się, że każdy odpowiedni członek projektu (czyli „podmiot”) skonfiguruje swoje preferencje tak, aby otrzymywać alerty o Performance Monitoring lub stanie projektu (np. o zmianach abonamentu 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 produkcyjnej oraz że w aplikacji są rozpowszechniane odpowiednie ustawienia domyślne serwera i aplikacji.