В этом документе приведен контрольный список рекомендаций и факторов, которые следует учитывать перед запуском приложения 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 соответствуют рекомендациям
Независимо от того, являетесь ли вы отдельным разработчиком или командой уровня Enterprise, важно обеспечить защиту проектов 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 Store ID и Team ID (если необходимо).
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 SDK Cloud Firestore и его зависимости могут увеличить размер APK.
Cloud Messaging
Рекомендуем включить экспорт данных Cloud Messaging в BigQuery, чтобы вы могли анализировать данные с помощью SQL BigQuery или экспортировать их для использования в собственных инструментах.
Загрузите ключ аутентификации APNS для Cloud Messaging в приложениях Apple в консоли Firebase. Если вы используете сертификаты APNS, убедитесь, что загружен рабочий сертификат.
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, чтобы предлагать или требовать от пользователей обновить приложение, если более ранние версии станут несовместимыми или устареют.