Firebase Admin SDK:setCredential() 的 NoSuchMethodError

Firebase Admin SDK: NoSuchMethodError for setCredential()

我的应用程序使用 Java 的 Firebase Admin SDK(最近从 Firebase Server SDK 升级)。它在本地环境中测试时工作正常,但是在将其从 Eclipse 部署到 Google App Engine 后,日志显示此错误:

com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backend method
java.lang.NoSuchMethodError: com.google.firebase.FirebaseOptions$Builder.setCredential(Lcom/google/firebase/auth/FirebaseCredential;)Lcom/google/firebase/FirebaseOptions$Builder;

有人可以指教吗?我在服务器上检查了 pom.xml ,可以看到 firebase-admin SDK 依赖项已成功上传:

<dependency>
    <groupId>com.google.firebase</groupId>
    <artifactId>firebase-admin</artifactId>
    <version>5.2.0</version>
</dependency>

您可能需要将 Firebase 版本升级到 4.1.0 或更高版本。 com.google.firebase.FirebaseOptions$Builder.setCredential() 从 4.1.0 版本开始引入。

<dependency>
    <groupId>com.google.firebase</groupId>
    <artifactId>firebase-admin</artifactId>
    <version>4.1.0</version>
</dependency>

我在开发机器 (Windows 10) 上的 Tomcat 8.0 上遇到了同样的问题。 我刚刚将 firebase-admin 从 4.1.7 版本迁移到最新版本 (6.11.0),所以某处有一个旧的 firebase-admin-4.1.7.jar。

因此这就是我所做的修复:

  • 找到并删除 firebase-admin-4.1 的任何副本。7.jar 从我的开发机器(检查 lib/ 文件夹)
  • 从 Tomcat 服务器删除 webapp
  • Maven 更新
  • 清理项目