При разработке проекта Android с помощью Firebase вы можете обнаружить концепции, которые незнакомы или специфичны для Firebase. Эта страница предназначена для того, чтобы ответить на эти вопросы или указать ресурсы, чтобы узнать больше.
Если у вас есть вопросы по теме, не затронутой на этой странице, не стесняйтесь посетить одно из наших интернет-сообществ . Мы также будем периодически обновлять эту страницу новыми темами, поэтому проверяйте, добавили ли мы тему, о которой вы хотите узнать!
Плагин Firebase Assistant для Android Studio
Firebase Assistant — это подключаемый модуль Android Studio, который регистрирует ваше приложение Android в проекте Firebase и добавляет в ваш проект Android необходимые файлы конфигурации Firebase, подключаемые модули и зависимости — и все это из 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 CLI , вы должны вручную добавить плагин и файл конфигурации в свой проект. Однако, если вы используете Firebase Assistant , эти задачи автоматически выполняются во время установки.
Посетите документацию по Android , чтобы узнать, как подключаемый модуль служб Google и файл конфигурации работают вместе.
Firebase Android BoM (ведомость материалов)
BoM Firebase Android (Bill of Materials) позволяет вам управлять всеми версиями вашей библиотеки Firebase, указав только одну версию — версию BoM.
Когда вы используете Firebase BoM в своем приложении, BoM автоматически извлекает версии отдельных библиотек, сопоставленные с версией BoM. Все отдельные версии библиотек будут совместимы. Когда вы обновляете версию BoM в своем приложении, все библиотеки Firebase, которые вы используете в своем приложении, будут обновлены до версий, сопоставленных с этой версией BoM.
Чтобы узнать, какие версии библиотеки Firebase сопоставлены с конкретной версией BoM, ознакомьтесь с примечаниями к выпуску для этой версии BoM. Если вам нужно сравнить версии библиотек, сопоставленные с одной версией 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:32.3.1') // 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 индексирования приложений независимо от того, какая версия указана в спецификации, но вы хотите использовать версии спецификации для аутентификации и облачного хранилища Firestore:
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.3.1') // 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:32.3.1') // 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' }
Нет. Firebase Android BoM управляет версиями библиотек только для библиотек 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:32.3.1' // 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) — это небольшие дополнения к базовым SDK Firebase, которые позволяют писать красивый и идиоматический код Kotlin.
Чтобы использовать библиотеку KTX в своем приложении, измените свою зависимость, включив в нее суффикс -ktx
. Каждая библиотека KTX автоматически имеет зависимость от базовой библиотеки, поэтому нет необходимости включать обе зависимости в ваше приложение.
dependencies { // Import the BoM for the Firebase platform (learn more) implementation platform('com.google.firebase:firebase-bom:32.3.1')// Declare the base library implementation 'com.google.firebase:firebase-analytics'// Declare the KTX library instead (which automatically has a dependency on the base library) 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) SDK Firebase для Android можно использовать в модулях динамических функций, которые устанавливаются отдельно от базового модуля приложения.
Чтобы включить поддержку модулей динамических функций, добавьте следующую зависимость в файл 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 в функциональных модулях:
Такие продукты, как Dynamic Links или Firebase In-App Messaging, которые полагаются на событие Analytics
first_open
, могут пропустить это событие при использовании в динамическом функциональном модуле.При совместном использовании Cloud Firestore и аутентификации вы всегда должны включать их в один и тот же модуль. Если это невозможно, то убедитесь, что Authentication загружается перед Cloud Firestore; в противном случае некоторые операции Cloud Firestore могут иметь неправильное состояние аутентификации.
При использовании
firebase-crashlytics-ndk
в качестве зависимости динамического функционального модуля необходимо установить свойствоunstrippedNativeLibsDir
в файлеbuild.gradle
вашего приложения, как описано в документации Crashlytics NDK .
Дополнительные сведения о функциональных модулях и доставке функций Play см. на странице Обзор доставки функций Play .
Плагин Gradle для сервисов Google, сервисы Google Play и магазин Google Play
Несколько частей экосистемы Google, Firebase и Android имеют схожие соглашения об именах. Вот краткое объяснение для каждого:
- Плагин для сервисов Google Gradle
- Плагин 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, на нем также работают сервисы Google Play (см. предыдущую запись). Узнайте больше о магазине Google Play для разработчиков .
- Игровые сервисы Google Play
- Набор API для разработчиков мобильных игр
- Узнайте больше о сервисах Google Play Games и о том, как интегрировать Firebase с вашим проектом сервисов Google Play Games .
Ресурсы с открытым исходным кодом для Firebase Android SDK
Firebase поддерживает разработку с открытым исходным кодом, и мы приветствуем вклад и отзывы сообщества.
SDK Firebase для Android
Большинство 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