В этом документе представлен контрольный список лучших практик и рекомендаций, которые следует учитывать перед запуском приложения Firebase в рабочую среду.
Общие рекомендации по выпуску
Перед развертыванием в продакшене обязательно протестируйте все изменения в Firebase Local Emulator Suite (для поддерживаемых продуктов). Тщательное тестирование поможет предотвратить дорогостоящие ошибки.
Начните применять Firebase App Check ко всем сервисам, которые его поддерживают. App Check помогает гарантировать, что доступ к вашим серверным сервисам и ресурсам имеют только ваши реальные приложения.
Ознакомьтесь с общим контрольным списком безопасности Firebase .
Используйте развертывание Firebase Remote Config для безопасного и постепенного выпуска новых функций и обновлений для вашего приложения.
Если вы еще этого не сделали, подумайте о настройке Firebase Crashlytics . Это легковесный инструмент для отслеживания сбоев в реальном времени, который помогает вам отслеживать, расставлять приоритеты и исправлять проблемы со стабильностью, снижающие качество вашего приложения.
Узнайте лимиты своего тарифного плана и настройте оповещения о превышении бюджета.
Убедитесь, что вы не превышаете лимиты использования и квоты после запуска в рабочую среду, особенно если у вас бесплатный тарифный план Spark. Рассмотрите возможность перехода на тарифный план Blaze с оплатой по мере использования .
Настройте оповещения о бюджете для вашего проекта.
Обратите внимание, что оповещения о превышении бюджета не являются ограничениями бюджета. Оповещение будет отправлять вам уведомления, когда вы приближаетесь к установленному порогу или превышаете его, чтобы вы могли принять меры в своем приложении или проекте.
Рассмотрите возможность настройки расширенных оповещений и действий , например, функций, которые будут отключать выставление счетов в ответ на оповещения.
Если вы используете Firebase AI Logic , App Hosting , Cloud Functions for Firebase или Firebase Extensions , мы настоятельно рекомендуем также установить ограничения на расходование бюджета , которые приостановят работу соответствующей службы, если ваш проект превысит бюджет, установленный для этой службы.
Отслеживайте использование на панелях мониторинга, специфичных для каждого продукта, или на центральной панели мониторинга использования и выставления счетов в консоли Firebase .
Убедитесь, что ваши проекты и приложения Firebase соответствуют передовым практикам.
Независимо от того, являетесь ли вы индивидуальным разработчиком или командой корпоративного масштаба, важно убедиться, что ваши проекты, приложения и ресурсы Firebase защищены, безопасны и могут развиваться вместе с изменениями в вашей команде.
Полезно помнить, что проект Firebase — это, по сути, просто проект Google Cloud с включенными для него сервисами и конфигурациями Firebase. Это означает, что многие рекомендации Google Cloud также применимы к Firebase.
Используйте разные проекты Firebase для разработки, тестирования и продакшена.
Постарайтесь свести к минимуму непредвиденные контакты с проектом, связанным с вашим рабочим приложением. Узнайте больше о настройке рабочих процессов разработки .
Защитите свои важные проекты, особенно проект, связанный с вашим рабочим приложением.
Используйте залоговое право по проекту для защиты от случайного удаления проекта.
Добавьте тег "Prod" в консоли Firebase , чтобы упростить идентификацию вашей производственной среды.
Если вы еще этого не сделали, подумайте о создании организации Google Cloud и добавлении в нее своих проектов Firebase.
Добавьте более одного владельца к своим проектам Firebase, особенно если ваш проект не находится в организации Google Cloud . Узнайте больше о том, когда и как назначать владельцев для проекта Firebase.
Добавляйте участников проекта (так называемых «руководителей») в виде групп Google, а не по отдельности.
Использование групп упрощает массовое назначение ролей членам команды, а также управление доступом к вашему проекту Firebase, особенно в случае смены или ухода членов команды.
Предоставьте каждому участнику проекта (так называемому «главному участнику») соответствующий уровень доступа к вашим проектам и ресурсам Firebase. Подробнее см. в разделе «Управление доступом к проектам с помощью Firebase IAM» .
Убедитесь, что каждый соответствующий участник проекта (так называемый «руководитель») настроил свои предпочтения для получения уведомлений о конкретных продуктах или состоянии проекта (например, об изменениях тарифного плана или ограничениях квот). Подробнее см. в разделе «Получение уведомлений Firebase» .
Вы также можете дополнительно настроить «ключевые контакты» вашего проекта, если хотите, чтобы уведомления получали конкретные или дополнительные участники проекта. Это особенно полезно для того, чтобы уведомления о платежах, юридических вопросах и изменениях в продукте получали не только владелец проекта.
Ограничьте использование ключей API Firebase только теми API, которые должны быть включены в список разрешенных API этого ключа . Также ознакомьтесь с информацией о ключах API в контрольном списке безопасности Firebase .
Подготовьте конкретные сервисы, используемые в вашем приложении.
Для каждого продукта и услуги, используемых в вашем приложении, могут потребоваться особые условия при их внедрении в производство.
Firebase AI Logic
Google Analytics
Настройте условия для аудитории, чтобы Google Analytics начал сбор аналитических данных с момента запуска вашего приложения.
Рекомендуется включить экспорт данных Google Analytics в BigQuery , чтобы вы могли анализировать свои данные с помощью BigQuery SQL или экспортировать данные для использования в собственных инструментах.
Ограничьте список свойств пользователей только той информацией, которая будет актуальна на протяжении всего жизненного цикла вашего приложения. Количество создаваемых свойств ограничено , и их нельзя архивировать.
Проверьте настройки ролей Google Analytics для ваших ресурсов и учетных записей Google Analytics . Эти разрешения управляются отдельно от разрешений и ролей IAM проекта Firebase.
Убедитесь, что ваш идентификатор App Store и идентификатор команды (при необходимости) указаны правильно в настройках проекта в консоли Firebase .
App Check
Убедитесь, что идентификатор вашей команды (Team ID) указан правильно в настройках проекта в консоли Firebase .
Если вы еще этого не сделали, начните применять Firebase App Check ко всем сервисам, которые его поддерживают. App Check помогает гарантировать, что доступ к вашим бэкэнд-сервисам и ресурсам имеют только ваши реальные приложения.
Authentication
Отключите все провайдеры , которые вы не используете (особенно анонимную аутентификацию).
Если ваше приложение использует вход через Google, персонализируйте экран согласия OAuth .
Настройте свой домен и отправителя для службы отправки электронных писем Authentication .
Если вы используете сервисы SMS-верификации Identity Platform, начните применять Firebase App Check и настройте политику регионов для SMS-сообщений , чтобы защитить ваше приложение от злоупотреблений SMS.
Реализуйте обработку ошибок на платформах Apple для распространенных ошибок Authentication .
Добавьте хеш SHA-1 для сертификата подписи вашего приложения в настройках проекта в консоли Firebase . Хеш SHA-1 необходим, если ваше приложение использует вход по номеру телефона или вход через Google (для которого требуется клиент OAuth).
Добавьте механизмы контроля доступа к вашим доменам, чтобы предотвратить несанкционированное использование. В частности, разрешите доступ к вашему рабочему домену в разделе Authentication консоли Firebase (это особенно важно, если вы используете продукты, которые полагаются на Firebase Security Rules ).
Cloud Firestore
Настройте Cloud Firestore Security Rules , чтобы предотвратить непреднамеренный доступ к данным.
Используйте ProGuard для уменьшения размера кода в вашей релизной сборке. Без ProGuard SDK Cloud Firestore и его зависимости могут увеличить размер вашего APK-файла.
Cloud Messaging
Рекомендуется включить экспорт данных Cloud Messaging в BigQuery , чтобы вы могли анализировать свои данные с помощью BigQuery SQL или экспортировать данные для использования в собственных инструментах.
Загрузите свой ключ аутентификации APNS для Cloud Messaging в приложениях Apple в консоли Firebase . Если вы используете сертификаты APNS, убедитесь, что ваш рабочий сертификат APNS загружен.
Cloud Storage
- Настройте Cloud Storage Security Rules , чтобы предотвратить непреднамеренный доступ к данным.
Crashlytics
Убедитесь, что каждый соответствующий участник проекта (так называемый «руководитель») настроил свои предпочтения для получения оповещений о состоянии Crashlytics или проекта (например, об изменениях тарифного плана или ограничениях квот). Подробнее см. в разделе «Получение оповещений Firebase» .
Рекомендуется включить экспорт данных Crashlytics в BigQuery , чтобы вы могли анализировать свои данные с помощью BigQuery SQL или экспортировать данные для использования в собственных инструментах.
(Только для Android и iOS) Рекомендуем включить помощь ИИ в Crashlytics , чтобы ускорить процесс понимания причин сбоя и определить, что с этим делать.
Загрузите файл dSYM для релизных сборок, чтобы использовать его в Crashlytics . Убедитесь, что Xcode может автоматически обрабатывать файлы dSYM и загружать их .
Загрузите сопоставление ProGuard для релизных сборок для использования в Crashlytics . Загрузка возможна с помощью Firebase CLI .
Подключите Firebase к Google Play чтобы получить более полное представление о состоянии вашего Android-приложения. Например, вы можете фильтровать отчеты о сбоях вашего приложения по трекам Google Play , что позволит вам более точно сфокусировать панель мониторинга на конкретных сборках.
Для сборок, ориентированных на Android и использующих IL2CPP, убедитесь, что вы загружаете нативные символы для каждого отдельного запуска сборки, для которого вы хотите получить символы, независимо от того, были ли внесены какие-либо изменения в код или конфигурацию.
Dynamic Links
- Dynamic Links устарела, поэтому мы рекомендуем отказаться от неё. Подробнее см. в разделе часто задаваемых вопросов об устаревании сервиса.
Firebase ML
См. раздел «Подготовка приложения Firebase ML для Apple к работе в производственной среде» .
См. раздел «Подготовка вашего Android-приложения Firebase ML к работе в производственной среде» .
Performance Monitoring
Убедитесь, что каждый соответствующий участник проекта (так называемый «руководитель») настроил свои предпочтения для получения оповещений о Performance Monitoring или состоянии проекта (например, об изменениях тарифного плана или ограничениях квот). Подробнее см. в разделе «Получение оповещений Firebase» .
Рекомендуется включить экспорт данных Performance Monitoring в BigQuery , чтобы вы могли анализировать свои данные с помощью BigQuery SQL или экспортировать данные для использования в собственных инструментах.
Realtime Database
Настройте Realtime Database Security Rules , чтобы предотвратить непреднамеренный доступ к данным.
Убедитесь, что вы готовы к масштабированию. Realtime Database по умолчанию установлено достаточное количество квот для большинства приложений, но некоторым приложениям может потребоваться дополнительная мощность.
Настройте правила ProGuard для работы с Realtime Database .
Remote Config
- Убедитесь, что любые экспериментальные правила Remote Config не влияют на пользователей вашей релизной версии, и что соответствующие серверные и внутриприложные настройки по умолчанию распространены в вашем приложении.