Ten dokument zawiera listę kontrolną sprawdzonych metod i wskazówek, które warto wziąć pod uwagę przed wdrożeniem aplikacji 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 usług). Dokładne testowanie może pomóc uniknąć kosztownych błędów.
Rozpocznij wymuszanie Firebase App Check w przypadku każdej usługi, która obsługuje tę funkcję. App Check pomaga zapewnić, że tylko Twoje aplikacje mają dostęp do usług i zasobów backendu.
Używaj Firebase Remote Configwdrażania, 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.
Sprawdzanie limitów abonamentu i ustawianie alertów dotyczących 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ś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ć 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ń, takich jak funkcje, które wyłączają płatności w odpowiedzi na alerty.
Monitoruj wykorzystanie w panelach poszczególnych usług lub w centralnym panelu Wykorzystanie i płatności w Firebase konsoli.
Stosuj sprawdzone metody związane z projektami i aplikacjami Firebase
Niezależnie od tego, czy jesteś deweloperem indywidualnym, czy pracujesz w dużym zespole, ważne jest, aby Twoje projekty, aplikacje i zasoby Firebase były chronione, zabezpieczone i mogły się rozwijać wraz ze zmianami w zespole.
Warto pamiętać, że projekt Firebase to w zasadzie Google Cloud projekt, w którym włączone są 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 projektu powiązanego z aplikacją produkcyjną. Dowiedz się więcej 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.
W Firebase konsoli zastosuj tag „Prod”, aby łatwiej rozpoznawać środowisko produkcyjne.
Jeśli jeszcze tego nie zrobiono, rozważ skonfigurowanie Google Cloudorganizacji i dodanie do niej projektów Firebase.
Dodaj do projektów Firebase więcej niż 1 właściciela, 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 Firebase.
Dodawaj członków projektu (czyli „zasady”) 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 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 ustawienia, aby otrzymywać alerty dotyczące konkretnych produktów lub stanu projektu (np. zmiany planu rozliczeniowego lub limity przydziału). 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 projektu. Jest to szczególnie przydatne, aby mieć pewność, że powiadomienia o zmianach dotyczących płatności, kwestii prawnych i produktów 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
Określ warunki dotyczące odbiorców, aby Google Analytics zacząć zbierać dane analityczne od momentu uruchomienia aplikacji.
Rozważ włączenie eksportowania danych Google Analytics do BigQuery aby móc analizować dane za pomocą BigQuery SQL lub eksportować dane do użycia we własnych narzędziach.
Ogranicz liczbę właściwości użytkownika do informacji, które będą istotne przez cały cykl życia aplikacji. Istnieje limit liczby właściwości, które możesz utworzyć, i nie można ich archiwizować.
Sprawdź ustawienia Google Analytics ról w Google Analytics usługach i na kontach. Tymi uprawnieniami zarządza się oddzielnie od uprawnień i ról IAM projektu Firebase.
Sprawdź, czy identyfikator App Store i identyfikator zespołu (w razie potrzeby) są prawidłowe w ustawieniach projektu w konsoli Firebase.
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 mają dostęp do usług i zasobów backendu.
Authentication
Wyłącz wszystkich dostawców, z których nie korzystasz (zwłaszcza uwierzytelnianie anonimowe).
Jeśli Twoja aplikacja korzysta z logowania 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óż obsługę błędów na platformach Apple w przypadku częstych błędów Authentication.
Dodaj w ustawieniach projektu w Firebase konsoli skrót SHA-1 wersji certyfikatu podpisywania aplikacji. Skrót SHA-1 jest wymagany, jeśli aplikacja korzysta z logowania za pomocą numeru telefonu lub Logowania przez Google (które 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 korzystasz z usług, które opierają się na Firebase Security Rules).
Cloud Firestore
Skonfiguruj Cloud Firestore Security Rules, aby zapobiec niezamierzonemu dostępowi do danych.
Użyj ProGuarda do zmniejszania kodu w 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 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 uwierzytelniania APNS dla Cloud Messaging w aplikacjach na urządzenia Apple w Firebasekonsoli. Jeśli używasz certyfikatów APNS, upewnij się, że produkcyjny certyfikat APNS został przesłany.
Cloud Storage
- Skonfiguruj Cloud Storage Security Rules, aby zapobiec niezamierzonemu dostępowi do danych.
Crashlytics
Upewnij się, że każdy użytkownik projektu, którego to dotyczy (czyli „podmiot”), skonfigurował ustawienia, aby otrzymywać alerty dotyczące Crashlytics 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 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) Włącz pomoc AI w Crashlytics, aby szybciej zrozumieć, dlaczego doszło do awarii, i dowiedzieć się, co z tym zrobić.
Prześlij plik dSYM dla wersji produkcyjnych do użycia w Crashlytics. Sprawdź, czy 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, 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.
Dynamic Links
- Dynamic Links jest wycofana, więc zalecamy migrację z tej usługi. Więcej informacji znajdziesz w odpowiedziach na najczęstsze pytania dotyczące wycofywania.
Firebase ML
Zobacz Przygotowywanie Firebase ML aplikacji na urządzenia Apple do opublikowania w wersji produkcyjnej
Zobacz artykuł Przygotowywanie Firebase ML aplikacji na Androida do opublikowania w wersji produkcyjnej.
Performance Monitoring
Upewnij się, że każdy użytkownik projektu, którego to dotyczy (czyli „podmiot”), skonfigurował ustawienia, aby otrzymywać alerty dotyczące Performance Monitoring lub stanu projektu (np. zmiany planu płatności 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
Skonfiguruj Realtime Database Security Rules, aby zapobiec niezamierzonemu dostępowi do danych.
Zadbaj o odpowiednie przygotowanie do skalowania. Realtime Database ma domyślny limit wystarczający dla większości aplikacji, ale niektóre z nich mogą potrzebować dodatkowej pojemności.
Skonfiguruj reguły ProGuard, aby współpracowały z Realtime Database.
Remote Config
- Upewnij się, że żadne eksperymentalne Remote Config reguły nie wpływają na użytkowników wersji produkcyjnej i że w aplikacji są rozpowszechniane odpowiednie domyślne ustawienia serwera i aplikacji.