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
- Zapoznaj się z listą kontrolną dotyczącą używania Firebase AI Logic w wersji produkcyjnej.
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
Skonfiguruj swoje Cloud Firestore Security Rules, aby zapobiec przypadkowemu dostępowi do danych.
Użyj ProGuard 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 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.
W konsoli Firebase prześlij klucz uwierzytelniania APNs do Cloud Messaging w aplikacjach Apple. Jeśli używasz certyfikatów APNs, upewnij się, że został przesłany produkcyjny certyfikat APNs.
Cloud Storage
- Skonfiguruj swoje Cloud Storage Security Rules, aby zapobiec przypadkowemu dostępowi do danych.
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.
Dynamic Links
- Dynamic Links jest wycofywane, dlatego zalecamy migrację z tej usługi. Więcej informacji znajdziesz w najczęstszych pytaniach dotyczących wycofywania.
Firebase ML
Zapoznaj się z artykułem Przygotowywanie aplikacji Apple Firebase ML do wersji produkcyjnej.
Zobacz Przygotowywanie aplikacji na Androida Firebase ML do wersji produkcyjnej.
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
Skonfiguruj swoje Realtime Database Security Rules, aby zapobiec przypadkowemu dostępowi do danych.
Upewnij się, że jesteś gotowy na skalowanie. Realtime Database ma domyślny limit przydziału wystarczający dla większości aplikacji, ale niektóre aplikacje mogą potrzebować dodatkowej pojemności.
Skonfiguruj reguły ProGuard tak, aby działały z 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.