В этом документе приведен контрольный список рекомендаций и факторов, которые следует учитывать перед запуском приложения Firebase в рабочей среде.
Общие рекомендации по выпуску
Убедитесь, что вы протестировали все изменения в Firebase Local Emulator Suite (для поддерживаемых продуктов), прежде чем развертывать их в рабочей среде. Тщательное тестирование поможет избежать дорогостоящих ошибок.
Начните принудительно применять Firebase App Check для каждого сервиса, который поддерживает эту функцию. App Check помогает обеспечить доступ к вашим бэкенд-службам и ресурсам только для ваших приложений.
Ознакомьтесь с общими рекомендациями по безопасности Firebase.
Используйте внедрение Firebase Remote Config, чтобы безопасно и постепенно выпускать новые функции и обновления для приложения.
Если вы ещё не настроили Firebase Crashlytics, рекомендуем сделать это. Это простой инструмент, который в реальном времени сообщает о сбоях и помогает отслеживать, приоритизировать и устранять проблемы со стабильностью, снижающие качество приложения.
Как узнать лимиты тарифного плана и настроить оповещения о бюджете
Убедитесь, что вы не превысите лимиты на использование и квоты после запуска в рабочей среде, особенно если вы используете бесплатный план Spark. Рекомендуем перейти на тарифный план Blaze с оплатой по мере использования.
Настройте оповещения о бюджете для проекта.
Обратите внимание, что оповещения о бюджете не являются ограничениями бюджета. Оповещения отправляются, когда вы приближаетесь к заданному порогу или превышаете его, чтобы вы могли принять меры в приложении или проекте.
Рекомендуем настроить расширенные оповещения и действия, например функции, которые будут отключать оплату в ответ на оповещения.
Если вы используете Firebase AI Logic, Firebase 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
- Ознакомьтесь с контрольным списком для использования Firebase AI Logic.
Google Analytics
Задайте условия для аудитории Google Analytics, чтобы начать сбор аналитических данных с момента запуска приложения.
Рекомендуем включить экспорт данных Google Analytics в BigQuery, чтобы анализировать их с помощью SQL в BigQuery или экспортировать для использования в собственных инструментах.
Ограничьте свойства пользователей информацией, которая будет актуальна на протяжении всего жизненного цикла приложения. Количество свойств, которые можно создать, ограничено, и их нельзя архивировать.
Проверьте настройки Google Analyticsролей для ресурсов и аккаунтов Google Analytics. Эти разрешения управляются отдельно от разрешений и ролей IAM проекта Firebase.
Убедитесь, что идентификатор магазина приложений и идентификатор команды (если необходимо) правильно указаны в настройках проекта консоли Firebase.
App Check
Убедитесь, что в настройках проекта в консоли Firebase указан правильный идентификатор команды.
Если вы ещё этого не сделали, начните принудительно применять Firebase App Check для всех сервисов, которые ее поддерживают. App Check помогает обеспечить доступ к вашим бэкенд-службам и ресурсам только для ваших приложений.
Authentication
Отключите все поставщики, которые вы не используете (особенно анонимную аутентификацию).
Если в вашем приложении используется функция "Войти с аккаунтом Google", персонализируйте окно запроса доступа OAuth.
Настройте домен и отправителя для сервиса отправки электронной почты Authentication.
Если вы используете сервисы подтверждения по SMS от Identity Platform, начните применять Firebase App Check и настройте правила для регионов, в которых доступно подтверждение по SMS, чтобы защитить приложение от злоупотреблений.
Реализуйте обработку ошибок на платформах Apple для распространенных ошибок Authentication.
Добавьте хеш SHA-1 для сертификата подписи приложения в настройках проекта в консоли Firebase. Хеш SHA-1 требуется, если в приложении используется вход по номеру телефона или вход с аккаунтом Google (для этого требуется клиент OAuth).
Добавьте контроль доступа для своих доменов, чтобы предотвратить несанкционированное использование. В частности, предоставьте доступ к рабочему домену в разделе Authentication консоли Firebase (особенно важно, если вы используете продукты, которые полагаются на Firebase Security Rules).
Cloud Firestore
Настройте Cloud Firestore Security Rules, чтобы предотвратить непреднамеренный доступ к данным.
Используйте ProGuard для сжатия кода в конечной сборке. Без ProGuard Cloud Firestore SDK и его зависимости могут увеличить размер APK-файла.
Cloud Messaging
Рекомендуем включить экспорт данных Cloud Messaging в BigQuery, чтобы анализировать их с помощью SQL в BigQuery или экспортировать для использования в собственных инструментах.
Загрузите ключ аутентификации APNS для Cloud Messaging в приложениях Apple в консоли Firebase. Если вы используете сертификаты APNS, убедитесь, что загружен сертификат APNS для релиза.
Рекомендуем включить журналы аудита облака для Cloud Messaging, чтобы создавать журналы аудита, в которых регистрируются действия администраторов и действия по доступу в ресурсах Google Cloud.
Регулярно обновляйте SDK, чтобы получать новые функции и обновления системы безопасности.
Следуйте Cloud Messagingрекомендациям по управлению токенами регистрации на сервере приложения. Сохраняйте токены регистрации с временной меткой, обновляйте их при изменениях и удаляйте устаревшие токены (неактивные более месяца), чтобы обеспечить достоверность отчетов о доставке и эффективное таргетирование сообщений.
Следуйте рекомендациям по отправке писем Cloud Messaging в больших объемах. Используйте HTTP v1 API или Firebase Admin SDK, реализуйте экспоненциальную выдержку с джиттером для повторных попыток и соблюдайте заголовки
Retry-After, чтобы избежать скачков трафика и ограничений скорости.
Cloud Storage
- Настройте Cloud Storage Security Rules, чтобы предотвратить непреднамеренный доступ к данным.
Crashlytics
Убедитесь, что каждый участник проекта (или "принципал") настроил получение оповещений о Crashlytics или состоянии проекта (например, об изменениях тарифного плана или лимитах квот). Подробнее о том, как получать оповещения Firebase…
Рекомендуем включить экспорт данных Crashlytics в BigQuery, чтобы вы могли анализировать данные с помощью SQL BigQuery или экспортировать их для использования в собственных инструментах.
(только для нативных приложений Android и iOS) Рекомендуем включить помощь ИИ в Crashlytics, чтобы быстрее понять, почему произошел сбой и что с этим делать.
Загрузите файл dSYM для сборок релизов, чтобы использовать его в Crashlytics. Убедитесь, что Xcode может автоматически обрабатывать dSYM и загружать файлы.
Загрузите файл сопоставления ProGuard для конечных сборок, используемых в Crashlytics. Загрузка возможна с помощью интерфейса командной строки Firebase.
Свяжите Firebase с Google Play, чтобы получать больше данных о работе приложения для Android. Например, вы можете отфильтровать отчеты о сбоях приложения по Google Play, чтобы на панели управления отображались данные только о нужных сборках.
Если вы создаете сборки для Android и используете IL2CPP, убедитесь, что вы загружаете нативные символы для каждой сборки, для которой хотите получить символы, независимо от того, были ли внесены изменения в код или конфигурацию.
Dynamic Links
- Dynamic Links устарел, поэтому мы рекомендуем перейти на другой сервис. Подробнее в разделе часто задаваемых вопросов о прекращении поддержки.
Firebase ML
Подробнее о том, как подготовить Firebase ML приложение для устройств Apple к публикации…
Подробнее о том, как подготовить рабочую версию Firebase MLприложения для Android…
Performance Monitoring
Убедитесь, что все участники проекта (субъекты) настроили получение оповещений о Performance Monitoring или состоянии проекта (например, об изменении тарифного плана или лимитах квот). Подробнее о том, как получать оповещения Firebase…
Рекомендуем включить экспорт данных Performance Monitoring в BigQuery, чтобы анализировать их с помощью SQL в BigQuery или экспортировать для использования в собственных инструментах.
Realtime Database
Настройте Realtime Database Security Rules, чтобы предотвратить непреднамеренный доступ к данным.
Убедитесь, что вы готовы к масштабированию. Realtime Database имеет квоту по умолчанию, достаточную для большинства приложений, но некоторым приложениям может потребоваться дополнительная емкость.
Настройте правила ProGuard для работы с Realtime Database.
Remote Config
Убедитесь, что экспериментальные правила Remote Config не влияют на пользователей выпущенной версии и что в приложении используются подходящие значения по умолчанию для сервера и приложения.
Рекомендуем настроить параметр
minimum_versionв Remote Config, чтобы предлагать или требовать от пользователей обновить приложение, если более ранние версии станут несовместимыми или устареют.