Контрольный список запуска Firebase

В этом документе представлен контрольный список лучших практик и рекомендаций, которые следует учитывать перед запуском приложения 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 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, убедитесь, что вы загружаете нативные символы для каждого отдельного запуска сборки, для которого вы хотите получить символы, независимо от того, были ли внесены какие-либо изменения в код или конфигурацию.

Firebase ML

Performance Monitoring

  • Убедитесь, что каждый соответствующий участник проекта (так называемый «руководитель») настроил свои предпочтения для получения оповещений о Performance Monitoring или состоянии проекта (например, об изменениях тарифного плана или ограничениях квот). Подробнее см. в разделе «Получение оповещений Firebase» .

  • Рекомендуется включить экспорт данных Performance Monitoring в BigQuery , чтобы вы могли анализировать свои данные с помощью BigQuery SQL или экспортировать данные для использования в собственных инструментах.

Realtime Database

Remote Config

  • Убедитесь, что любые экспериментальные правила Remote Config не влияют на пользователей вашей релизной версии, и что соответствующие серверные и внутриприложные настройки по умолчанию распространены в вашем приложении.