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