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

How to ensure all firebase SDKs are the compatible version?

目前我们有很多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"
...

但它们每个都有不同的版本号,有时它们会发生冲突或通过传递包含解决为意外版本。或者其他模块为同一个库声明了不同的版本...这会浪费我的时间。

有解决办法吗?

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