Этот документ содержит контрольный список рекомендаций и рекомендаций перед запуском приложения 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, убедитесь, что вы загружаете собственные символы для каждого отдельного запуска сборки, для которого вы надеетесь иметь символы, независимо от того, были ли какие-либо изменения кода или конфигурации.
Dynamic Links
- Dynamic Links устарели, поэтому мы рекомендуем отказаться от этой службы. Подробную информацию можно найти в разделе часто задаваемых вопросов по устаревшей версии .
Firebase ML
См. раздел Подготовка приложения Apple Firebase ML к рабочей среде .
См. раздел Подготовка Android-приложения 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 не влияют на пользователей вашей версии и что в вашем приложении распространены соответствующие настройки сервера и приложения по умолчанию.