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. Gdy zbliżasz się do skonfigurowanego progu lub go przekroczysz, otrzymasz alert, dzięki czemu możesz podjąć odpowiednie działania 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, App Hosting, Cloud Functions for Firebase, lub Firebase Extensions, zdecydowanie zalecamy również ustawienie limitów wydatków na budżet, które wstrzymają odpowiednią usługę, jeśli Twój projekt przekroczy 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 produkcji 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 zastosuj tag „Prod”, aby łatwiej identyfikować środowisko produkcyjne .Firebase

  • 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 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 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 przypadku usług i kont.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.

  • W Ustawieniach projektu w konsoli Firebase dodaj skrót SHA-1 wersji do certyfikatu podpisywania aplikacji. 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

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 stan aplikacji na Androida. Możesz na przykład filtrować raporty o awariach aplikacji według Google Play ścieżki, co pozwala 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.