更新 firebase 库时出现 IllegalArgumentException

IllegalArgumentException when update firebase library

我的 Android 应用程序在我更新 firebase 库之前工作正常。更新到最新的 firebase 库后,我得到了以下异常:

E/AndroidRuntime: FATAL EXCEPTION: Thread-4
    Process: com.sound.booster.extra.volume, PID: 24298
    java.lang.IllegalArgumentException: Please set your project ID. A valid Firebase project ID is required to communicate with Firebase server APIs: It identifies your project with Google.
        at com.google.android.gms.common.internal.Preconditions.checkNotEmpty(Unknown Source:8)
        at com.google.firebase.iid.FirebaseInstanceId.zza(com.google.firebase:firebase-iid@@20.1.7:52)
        at com.google.firebase.iid.FirebaseInstanceId.getInstance(com.google.firebase:firebase-iid@@20.1.7:2)
        at com.google.firebase.iid.FirebaseInstanceId.getInstance(com.google.firebase:firebase-iid@@20.1.7:1)

更新库前的源码:

    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.google.firebase:firebase-config:19.1.0'
    implementation 'com.google.firebase:firebase-core:17.2.2'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'

更新库后的源码:

    implementation 'com.google.firebase:firebase-messaging:20.1.7'
    implementation 'com.google.firebase:firebase-config:19.1.4'
    implementation 'com.google.firebase:firebase-core:17.4.1'
    implementation 'com.google.firebase:firebase-analytics:17.4.1'

谁能解释为什么以及如何解决这个问题?

较新版本的 Firebase SDK 依赖于名为 Firebase Installations Service 的服务,该服务对应用程序中包含的 Firebase 项目的配置数据增加了一些额外要求。在您的情况下,您似乎在此配置中缺少项目 ID。

如果您通过在应用中包含 google-services.json 为您的应用配置 Firebase 项目,解决方案通常是从 Firebase 控制台获取该文件的最新版本并在您的应用中更新。

如果您在代码中为您的应用显式配置 Firebase 项目,则需要确保在其中调用 setProjectId method

另见:

  • FirebaseInstallationsException on latest version
  • 引入此新依赖的SDK版本release notes