Как обеспечить совместимость версии всех Firebase SDK? - PullRequest
0 голосов
/ 24 июня 2019

В настоящее время у нас есть много версий Firebase.

firebase_core_version = '16.0.6'
firebase_perf_version = '16.2.2'
firebase_messaging_version = '17.3.4'
...

implementation "com.google.firebase:firebase-core:$firebase_core_version"
implementation "com.google.firebase:firebase-perf:$firebase_perf_version"
implementation "com.google.firebase:firebase-messaging:$firebase_messaging_version"
...

Но у каждого из них свой номер версии, и иногда они конфликтуют или разрешаются в неожиданные версии с помощью переходных включений.Или другой модуль объявляет другую версию для той же библиотеки ... Это крадет у меня время.

Есть ли какие-то решения для этого?

1 Ответ

1 голос
/ 24 июня 2019

Gradle имеет функцию «BoM», которая доступна с 5.0. и это позволяет вам освободиться от версии ад.

implementation platform('com.google.firebase:firebase-bom:20.0.1')
implementation 'com.google.firebase:firebase-perf'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-appindexing'
implementation 'com.google.firebase:firebase-config'

Вы можете заметить, что только новый импорт firebase-bom имеет версию, а другие библиотеки не имеют версии.

Это потому, что зависимость BoM содержит все версии Firebase внутри (конечно, они совместимы!).
Таким образом, ваш модуль всегда импортирует firebase-bom, тогда конфликт версий исчезнет.

firebase-bom в настоящее время экспериментальный, но он работает для меня. https://firebase.google.com/docs/android/setup#firebase-bom

Надеюсь, у androidx (jetpack) тоже есть это!

Существует также доступная охтп-бомба. https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp-bom

...