如何确保所有Firebase SDK是兼容版本?

时间:2019-06-24 10:31:45

标签: android firebase android-gradle build.gradle maven-bom

当前,我们有很多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 个答案:

答案 0 :(得分:1)

Gradle具有从5.0开始可用的“ BoM”功能。它使您摆脱了地狱版本。

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)也有这个!

也有okhttp-bom可用。 https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp-bom