Разрабатывая свой проект Android с использованием Firebase, вы можете обнаружить концепции, незнакомые или специфичные для Firebase. Цель этой страницы — ответить на эти вопросы или указать ресурсы, где можно узнать больше.
Если у вас есть вопросы по теме, не затронутой на этой странице, посетите одно из наших интернет-сообществ . Мы также будем периодически обновлять эту страницу новыми темами, поэтому проверяйте, добавили ли мы тему, о которой вы хотите узнать!
Плагин Firebase Assistant для Android Studio
Firebase Assistant — это плагин Android Studio, который регистрирует ваше Android-приложение в проекте Firebase и добавляет необходимые файлы конфигурации Firebase, плагины и зависимости в ваш проект Android — и все это из Android Studio!
Следуйте инструкциям на странице начала работы с Android, чтобы использовать Firebase Assistant. Убедитесь, что вы используете самые последние версии Android Studio и Firebase Assistant (выберите «Файл» > «Проверить наличие обновлений» ).
Когда вы выбираете определенные продукты Firebase для добавления в свое приложение, Firebase Assistant автоматически объявляет необходимые зависимости в вашем файле app/build.gradle
. Однако, чтобы использовать функции Firebase, выходящие за рамки текущих возможностей Firebase Assistant, вам может потребоваться вручную внести некоторые изменения в эти зависимости:
Если вы хотите использовать Firebase Android BoM , обновите зависимости в файле Gradle вашего модуля (на уровне приложения) (обычно
app/build.gradle
), чтобы импортировать платформу BoM. Вам также потребуется удалить версии из каждой строки зависимости библиотеки Firebase.Если вы хотите использовать библиотеку расширений Kotlin , измените строку зависимости, добавленную в файл Gradle вашего модуля (на уровне приложения) (обычно
app/build.gradle
), чтобы вместо этого использоватьktx
версию библиотеки Firebase.
Сервисы Google — плагин и файл конфигурации
В рамках добавления Firebase в ваш проект Android вам необходимо добавить в свой проект плагин google-services
и файл конфигурации
.
Если вы добавляете Firebase в свой проект Android через консоль Firebase , Management REST API или интерфейс командной строки Firebase , вам необходимо вручную добавить плагин и файл конфигурации в свой проект. Однако если вы используете Firebase Assistant , эти задачи автоматически выполняются во время установки.
Посетите документацию Android , чтобы узнать, как вместе работают плагин сервисов Google и файл конфигурации.
Спецификация Firebase Android (спецификация материалов)
Спецификация Firebase Android (Спецификация) позволяет вам управлять всеми версиями библиотеки Firebase, указав только одну версию — версию спецификации.
Когда вы используете спецификацию Firebase в своем приложении, она автоматически извлекает отдельные версии библиотеки, сопоставленные с версией спецификации. Все отдельные версии библиотеки будут совместимы. Когда вы обновляете версию BoM в своем приложении, все библиотеки Firebase, которые вы используете в своем приложении, обновятся до версий, сопоставленных с этой версией BoM.
Чтобы узнать, какие версии библиотеки Firebase сопоставлены с конкретной версией BoM, ознакомьтесь с примечаниями к выпуску для этой версии BoM. Если вам нужно сравнить версии библиотеки, сопоставленные с одной версией спецификации, с другой версией спецификации, используйте виджет сравнения ниже.
Узнайте больше о поддержке Gradle платформ BoM .
Вот как использовать Firebase Android BoM для объявления зависимостей в файле Gradle вашего модуля (на уровне приложения) (обычно app/build.gradle
). При использовании BoM вы не указываете отдельные версии библиотеки в строках зависимостей.
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:33.1.2') // Declare the dependencies for the desired Firebase products without specifying versions // For example, declare the dependencies for Firebase Authentication and Cloud Firestore implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' }
Вот некоторые часто задаваемые вопросы об использовании Firebase Android BoM:
Вот как можно переопределить версию библиотеки, указанную в спецификации:
Поддерживайте линию для импорта платформы BoM.
В строке зависимости библиотеки укажите желаемую версию библиотеки. Например, вот как объявить зависимости, если вы хотите использовать версию 18.0.0 индексирования приложений независимо от того, какая версия указана в BoM, но вы хотите использовать версии BoM для аутентификации и Cloud Firestore:
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:33.1.2') // Declare the dependency for the App Indexing library and specify a version // This specified library version overrides the version designated in the BoM. implementation 'com.google.firebase:firebase-appindexing:18.0.0' // Declare the dependencies for the other Firebase libraries without specifying versions // These libraries will use the versions designated in the BoM. implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' }
Нет. Чтобы фактически добавлять и использовать библиотеки Firebase в своем приложении, вы должны объявить каждую библиотеку как отдельную строку зависимости в файле Gradle вашего модуля (на уровне приложения) (обычно app/build.gradle
).
Использование BoM гарантирует совместимость версий любых библиотек Firebase в вашем приложении, но BoM фактически не добавляет эти библиотеки Firebase в ваше приложение.
Да! Когда вы объявляете строки зависимости вашей конкретной библиотеки Firebase, просто используйте имя библиотеки KTX, например:
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:33.1.2') // Declare the dependencies for the desired Firebase products, without specifying versions // For example, declare the dependencies for Firebase Authentication and Cloud Firestore implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' }
Нет. BoM Firebase Android управляет только версиями библиотек Firebase. Единственным исключением является включение Google Mobile Ads SDK, поскольку он очень часто используется в приложениях Firebase.
Несмотря на то, что каждая библиотека Firebase имеет независимые версии, они созданы вместе, чтобы гарантировать совместимость последней версии каждой библиотеки с другими.
Используя BoM для управления версиями библиотеки Firebase вашего приложения, вам не нужно отслеживать, какая версия библиотеки Firebase совместима с другой библиотекой Firebase.
Даже если вы сейчас используете в своем приложении только одну библиотеку Firebase, мы все равно рекомендуем использовать BoM, потому что никогда не знаешь, когда вам может понадобиться другая библиотека Firebase!
Да, вы все еще можете использовать BoM! Для Gradle 5.0 и более поздних версий поддержка BoM включается автоматически. Однако для более ранних версий Gradle вам просто нужно включить функцию BoM и импортировать BoM немного по-другому.
В файл
settings.gradle
добавьтеenableFeaturePreview('IMPROVED_POM_SUPPORT')
.В файл Gradle вашего модуля (на уровне приложения) (обычно
app/build.gradle
) импортируйте BoM как обычную библиотеку (без модификатораplatform
), например:dependencies { // Import the Firebase BoM implementation 'com.google.firebase:firebase-bom:33.1.2' // Declare the dependencies for the desired Firebase products, without specifying versions // For example, declare the dependencies for Firebase Authentication and Cloud Firestore implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' }
Посетите репозиторий Firebase Android SDK на GitHub .
Сравнение версий Firebase BoM
Модули библиотеки расширений Kotlin (KTX)
Модули библиотеки расширений Firebase Kotlin (KTX) — это небольшие дополнения к основным модулям библиотеки Firebase, и вы можете использовать их для написания красивого и идиоматического кода Kotlin.
Чтобы использовать модуль библиотеки KTX в своем приложении, измените свою зависимость, включив в нее суффикс -ktx
. Каждый модуль KTX автоматически зависит от модуля основной библиотеки, поэтому нет необходимости включать обе зависимости в ваше приложение.
dependencies { // Import the BoM for the Firebase platform (learn more) implementation platform('com.google.firebase:firebase-bom:33.1.2')// Declare the main module implementation 'com.google.firebase:firebase-analytics'// Declare the KTX module instead (which automatically has a dependency on the main module) implementation 'com.google.firebase:firebase-analytics-ktx' }
Каждый модуль KTX предоставляет различные синтаксические расширения основного модуля. Например, модуль Analytics KTX упрощает регистрацию событий:
До (с использованием основного модуля)
val analytics = FirebaseAnalytics.getInstance(); val bundle = Bundle(); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id); bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name); bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image"); analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, bundle);
После (вместо этого используется модуль KTX)
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) { param(FirebaseAnalytics.Param.ITEM_ID, id) param(FirebaseAnalytics.Param.ITEM_NAME, name) param(FirebaseAnalytics.Param.CONTENT_TYPE, "image") }
Все продукты Firebase предлагают модуль KTX, за исключением Firebase ML и индексирования приложений.
Если вы еще этого не сделали, ознакомьтесь со справочной документацией по API для модулей KTX.
Функциональные модули и доставка функций Play
Начиная с мая 2021 года (Firebase BoM v28.0.0), Firebase Android SDK можно использовать в модулях динамических функций, которые устанавливаются отдельно от базового модуля приложения.
Чтобы включить поддержку модулей динамических функций, добавьте следующую зависимость в файл build.gradle
вашего базового модуля:
dependencies {
implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta03'
}
Теперь, когда вы добавили поддержку динамических модулей, вы можете добавить зависимости Firebase SDK (с Firebase BoM или без него), чтобы использовать модули вашего приложения и использовать их, как обычно.
Например, если ваше приложение использует базу данных реального времени для реализации определенной функции реального времени, вы можете добавить зависимость firebase-database
в build.gradle
функционального модуля, а не в базовый модуль. Это уменьшит размер загрузки для большинства пользователей.
Помните о следующих предостережениях при использовании Firebase SDK в функциональных модулях:
Такие продукты, как динамические ссылки или обмен сообщениями внутри приложений Firebase, которые полагаются на событие Analytics
first_open
могут пропустить это событие при использовании в модуле динамических функций.При совместном использовании Cloud Firestore и аутентификации всегда следует включать их в один и тот же модуль. Если это невозможно, убедитесь, что Аутентификация загружена перед Cloud Firestore; в противном случае некоторые операции Cloud Firestore могут иметь неправильное состояние аутентификации.
При использовании
firebase-crashlytics-ndk
в качестве зависимости динамического функционального модуля вам необходимо установить свойствоunstrippedNativeLibsDir
в файлеbuild.gradle
вашего приложения, как описано в документации Crashlytics NDK .
Дополнительную информацию о функциональных модулях и доставке функций Play см. на странице Обзор доставки функций Play .
Плагин сервисов Google Gradle, сервисы Google Play и магазин Google Play
Некоторые части экосистемы Google, Firebase и Android имеют схожие соглашения об именах. Вот краткое объяснение для каждого:
- Плагин Gradle для сервисов Google
- Плагин Gradle (
com.google.gms.google-services
), который запускается во время сборки, чтобы гарантировать, что ваше приложение имеет правильную конфигурацию для доступа к Firebase и API Google. - Несмотря на свое название, этот плагин не имеет никакого отношения к сервисам Google Play (см. следующую запись) и не влияет на возможности вашего приложения во время выполнения.
- Этот плагин также обрабатывает файл
google-services.json
, который вы добавляете в свое приложение в рамках настройки Firebase. Узнайте больше о плагине Gradle для сервисов Google . - Сервисы Google Play
- Невидимая фоновая служба, которая работает на устройстве Android и предоставляет несколько распространенных API Google (например, Google Maps и Google Sign In) для приложений на устройстве.
- Централизация этих общих API-интерфейсов в единой службе позволяет уменьшить размер других приложений и позволяет устройству получать автоматические обновления безопасности и улучшения функций без обновления ОС. Узнайте больше о сервисах Google Play .
- Google Play магазин
- Магазин для загрузки приложений, фильмов, книг и многого другого на устройство Android.
- Как разработчик, вы управляете распространением, выпусками и т. д. своего приложения через консоль Google Play. Если на устройстве есть Google Play Store, на нем также работают службы Google Play (см. предыдущую запись). Узнайте больше о Google Play Store для разработчиков .
- Игровые сервисы Google Play
- Набор API для разработчиков мобильных игр.
- Узнайте больше о сервисах Google Play Games и о том, как интегрировать Firebase с вашим проектом сервисов Google Play Games .
Ресурсы с открытым исходным кодом для Firebase Android SDK
Firebase поддерживает разработку с открытым исходным кодом, и мы поощряем вклад сообщества и обратную связь.
Android-SDK Firebase
Большинство Firebase Android SDK разрабатываются как библиотеки с открытым исходным кодом в нашем общедоступном репозитории Firebase GitHub . Мы активно работаем над тем, чтобы в ближайшее время перенести оставшиеся частные библиотеки Firebase на наш общедоступный GitHub!
Примеры быстрого старта
Firebase поддерживает коллекцию примеров быстрого запуска для большинства API Firebase на Android. Эти краткие руководства можно найти в нашем общедоступном репозитории быстрых запусков Firebase GitHub .
Вы можете открыть каждое краткое руководство как проект Android Studio, а затем запустить его на мобильном устройстве или виртуальном устройстве (AVD). Или вы можете использовать эти краткие руководства в качестве примера кода для использования Firebase SDK.
Другие темы, представляющие интерес
- Зависимости Firebase Android SDK от сервисов Google Play
- Свяжите свое приложение Firebase с Google Play
- Интеграция с вашим проектом сервисов Play Games.