Lista kontrolna uruchomienia Firebase

Ten dokument zawiera listę kontrolną sprawdzonych metod i wskazówek, które warto wziąć pod uwagę przed wdrożeniem aplikacji w Firebase w środowisku produkcyjnym.

Ogólne sprawdzone metody publikowania

  • Przed wdrożeniem zmian w środowisku produkcyjnym upewnij się, że zostały one przetestowane w Firebase Local Emulator Suite (w przypadku obsługiwanych produktów). Dokładne testowanie może pomóc uniknąć kosztownych błędów.

  • Zacznij wymuszać Firebase App Check w przypadku każdej usługi, która to obsługuje. App Check pomaga zapewnić, że tylko Twoje aplikacje będą miały dostęp do usług i zasobów backendu.

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

  • Używaj Firebase Remote Configwdrażania etapowego, aby bezpiecznie i stopniowo udostępniać nowe funkcje i aktualizacje aplikacji.

  •  Jeśli jeszcze tego nie zrobiono, rozważ skonfigurowanie Firebase Crashlytics. To lekkie narzędzie do zgłaszania awarii w czasie rzeczywistym, które pomaga śledzić, ustalać priorytety i usuwać problemy ze stabilnością pogarszające jakość aplikacji.

Poznaj limity swojego planu cenowego i skonfiguruj alerty dotyczące budżetu

  • Po przejściu do środowiska produkcyjnego upewnij się, że nie przekraczasz limitów wykorzystania i limitów, zwłaszcza jeśli korzystasz z bezpłatnego pakietu Spark. Rozważ przejście na abonament Blaze z płatnościami 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ć Ci powiadomienia, gdy zbliżysz 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ń, np. funkcji, które wyłączają rozliczenia w odpowiedzi na alerty.

    • Jeśli korzystasz z usług Firebase AI Logic, Firebase App Hosting, Cloud Functions for Firebase i Firebase Extensions, zdecydowanie zalecamy skonfigurowanie limitów wydatków, które wstrzymają działanie odpowiedniej usługi, gdy Twój projekt osiągnie budżet ustawiony dla tej usługi.

  • Wykorzystanie możesz monitorować w panelach poszczególnych usług lub w centralnym panelu Wykorzystanie i płatności w konsoli Firebase.

Sprawdzanie, czy projekty i aplikacje Firebase są zgodne ze sprawdzonymi metodami

Niezależnie od tego, czy jesteś deweloperem indywidualnym, 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 po prostu Google Cloud projekt, w którym włączono usługi i konfiguracje Firebase. Oznacza to, że wiele sprawdzonych metod zalecanych przez Google Cloud ma zastosowanie również w przypadku Firebase.

  • Używaj różnych projektów Firebase do tworzenia, testowania i wdrażania aplikacji.

    Staraj się ograniczać nieoczekiwane narażenie na projekt powiązany z aplikacją produkcyjną. Więcej informacji o konfigurowaniu przepływów pracy związanych z programowaniem

  • Chroń ważne projekty, a zwłaszcza projekt powiązany z aplikacją produkcyjną.

    • Używaj blokad projektu, aby chronić się przed przypadkowym usunięciem projektu.

    • Zastosuj tag „Prod” w Firebasekonsoli, aby łatwiej identyfikować środowisko produkcyjne.

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

  • Dodaj więcej niż 1 właściciela do projektów Firebase, szczególnie jeśli projekt nie znajduje się w Google Cloud organizacji. 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 dyskusyjne Google zamiast pojedynczych użytkowników.

    Korzystanie z grup ułatwia zbiorcze przypisywanie ról członkom zespołu, a także 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 członek projektu, którego to dotyczy (czyli „podmiot”), skonfigurował swoje preferencje, aby otrzymywać alerty dotyczące konkretnych produktów lub stanu projektu (np. zmian planu płatności lub limitów). Więcej informacji znajdziesz w artykule Otrzymywanie alertów Firebase.

    Możesz też opcjonalnie dostosować „ważne kontakty” w projekcie, jeśli chcesz, aby powiadomienia otrzymywali konkretni lub dodatkowi członkowie zespołu. 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 projektów.

  • 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 bezpieczeństwa Firebase.

Przygotowywanie konkretnych usług używanych w aplikacji

Każdy produkt i usługa używane w aplikacji mogą mieć określone wymagania, gdy są używane w wersji produkcyjnej.

Firebase AI Logic

Google Analytics

App Check

  • Sprawdź, czy identyfikator zespołu jest prawidłowy w ustawieniach projektu w konsoli Firebase.

  •  Jeśli jeszcze tego nie zrobiono, zacznij wymuszać Firebase App Check w przypadku każdej usługi, która to obsługuje. App Check pomaga zapewnić, że tylko Twoje aplikacje będą miały dostęp do usług i zasobów backendu.

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 ekran zgody OAuth.

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

  • Jeśli korzystasz z 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 związanymi z SMS-ami.

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

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

  • Dodaj kontrolę dostępu do swoich domen, aby zapobiec nieautoryzowanemu użyciu. W sekcji Authentication konsoli Firebase zezwól na dostęp do domeny produkcyjnej (jest to szczególnie ważne, jeśli korzystasz z usług, które opierają się na Firebase Security Rules).

Cloud Firestore

Cloud Messaging

  • Rozważ włączenie eksportowania danych Cloud Messaging do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować dane do użycia we własnych narzędziach.

  • Prześlij klucz autoryzacji APNS dla Cloud Messaging w przypadku aplikacji na urządzenia Apple w Firebase konsoli. Jeśli używasz certyfikatów APNS, upewnij się, że produkcyjny certyfikat APNS został przesłany.

Cloud Storage

Crashlytics

  • Upewnij się, że każdy członek projektu (czyli „podmiot”) skonfigurował ustawienia, aby otrzymywać alerty dotyczące Crashlytics lub stanu projektu (np. zmiany planu płatności lub limity kwot). Więcej informacji znajdziesz w artykule Otrzymywanie alertów Firebase.

  • Rozważ włączenie eksportowania danych Crashlytics do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować dane do użycia we własnych narzędziach.

  • (tylko natywne aplikacje na Androida i iOS) Warto włączyć pomoc AI w Crashlytics, aby szybciej dowiedzieć się, dlaczego doszło do awarii, i co z tym zrobić.

  • Prześlij plik dSYM dla wersji produkcyjnych do użycia w Crashlytics. Upewnij się, że Xcode może automatycznie przetwarzać pliki dSYM i przesyłać je.

  • Prześlij mapowanie ProGuard w przypadku wersji 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ółowe informacje o stanie aplikacji na Androida. Możesz na przykład filtrować raporty o awariach aplikacji według Google Playścieżki, co pozwala lepiej dostosować panel do konkretnych wersji.

  • W przypadku kompilacji na Androida korzystających z IL2CPP upewnij się, że przesyłasz symbole natywne dla każdego uruchomienia kompilacji, dla którego chcesz mieć symbole, niezależnie od tego, czy wprowadzono zmiany w kodzie lub konfiguracji.

Firebase ML

Performance Monitoring

  • Upewnij się, że każdy członek projektu, którego to dotyczy (czyli „podmiot”), skonfigurował ustawienia, aby otrzymywać alerty dotyczące Performance Monitoring lub stanu projektu (np. zmiany pakietu rozliczeniowego lub limitów). Więcej informacji znajdziesz w artykule Otrzymywanie alertów Firebase.

  • Rozważ włączenie eksportowania danych Performance Monitoring do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować dane do użycia we własnych narzędziach.

Realtime Database

Remote Config

  • Upewnij się, że żadne 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 minimum_version parametru w Remote Config, aby wyświetlać użytkownikom prośby o zaktualizowanie aplikacji lub wymagać od nich aktualizacji, jeśli starsze wersje staną się niezgodne lub zostaną wycofane.