В этом документе содержится контрольный список рекомендаций и соображений, которые следует учитывать перед запуском приложения Firebase в эксплуатацию.
Общие рекомендации по выпуску
Перед развертыванием в рабочей среде обязательно протестируйте все изменения в Firebase Local Emulator Suite (для поддерживаемых продуктов). Тщательное тестирование поможет избежать дорогостоящих ошибок.
Начните применять Firebase App Check для всех сервисов, которые её поддерживают. App Check гарантирует, что доступ к вашим внутренним сервисам и ресурсам будут иметь только ваши приложения.
Ознакомьтесь с общим контрольным списком безопасности Firebase .
Используйте развертывание Firebase Remote Config для безопасного и постепенного выпуска новых функций и обновлений для вашего приложения.
Если вы ещё этого не сделали, рассмотрите возможность установки Firebase Crashlytics . Это лёгкий инструмент для сбора отчётов о сбоях в режиме реального времени, который поможет вам отслеживать, приоритизировать и устранять проблемы со стабильностью, которые снижают качество вашего приложения.
Узнайте ограничения вашего тарифного плана и установите оповещения о бюджете
Следите за тем, чтобы не исчерпать лимиты и квоты использования после запуска в эксплуатацию, особенно если у вас бесплатный тариф Spark. Рассмотрите возможность перехода на тариф Blaze с оплатой по мере использования .
Настройте оповещения о бюджете для вашего проекта.
Обратите внимание, что оповещения о бюджете не являются ограничениями . Оповещение будет отправлено вам, когда вы приблизитесь к установленному пороговому значению или превысите его, чтобы вы могли принять меры в своем приложении или проекте.
Рассмотрите возможность настройки расширенных оповещений и действий , например функций, которые отключат выставление счетов в ответ на оповещения.
Контролируйте использование на панелях мониторинга конкретных продуктов или на центральной панели мониторинга использования и выставления счетов в консоли 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
Google Analytics
Определите условия аудитории, чтобы Google Analytics начал собирать аналитические данные с момента запуска вашего приложения.
Рассмотрите возможность включения экспорта данных Google Analytics в BigQuery , чтобы вы могли анализировать свои данные с помощью BigQuery SQL или экспортировать данные для использования с собственными инструментами.
Ограничьте пользовательские свойства информацией, которая будет актуальна для всего жизненного цикла вашего приложения. Существует ограничение на количество создаваемых свойств , и их нельзя архивировать.
Проверьте настройки ролей Google Analytics для ваших ресурсов и аккаунтов Google Analytics . Эти разрешения управляются отдельно от разрешений и ролей IAM проекта Firebase.
Убедитесь, что ваш идентификатор App Store и идентификатор команды (при необходимости) указаны правильно в настройках проекта консоли Firebase .
App Check
Убедитесь, что идентификатор вашей команды указан правильно в настройках проекта консоли 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 Cloud Firestore SDK и его зависимости могут увеличить размер 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 к производству .
См. раздел Подготовка приложения Firebase ML для Android к производству .
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 не влияют на пользователей вашей версии, а также что в вашем приложении распространены соответствующие серверные и внутренние настройки по умолчанию.