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

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

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 не влияют на пользователей вашей версии, а также что в вашем приложении распространены соответствующие серверные и внутренние настройки по умолчанию.