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.
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
Określ warunki dotyczące odbiorców Google Analytics, aby 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 właściwości użytkownika do informacji, które będą istotne przez cały okres istnienia 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 w projekcie w 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 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
Skonfiguruj Cloud Firestore Security Rules, aby zapobiec przypadkowemu 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 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
- Skonfiguruj Cloud Storage Security Rules, aby zapobiec niezamierzonemu dostępowi do danych.
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.
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 iOS 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 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
Skonfiguruj Realtime Database Security Rules, aby zapobiec niezamierzonemu dostępowi do danych.
Upewnij się, że jesteś gotowy(-a) na skalowanie. 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, a w aplikacji są rozpowszechniane odpowiednie ustawienia domyślne serwera i aplikacji.
Rozważ skonfigurowanie
minimum_versionparametru 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.