Контрольный список запуска 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 .

Подготовьте конкретные сервисы, используемые в вашем приложении.

Каждый продукт и услуга, используемые в вашем приложении, могут иметь особые требования при их использовании в рабочей среде.

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.

  • Внедрите обработку распространенных ошибок Authentication на платформах Apple.

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