构造函数 FirebaseOptions.Builder() 已弃用

gro*_*ble 1 java firebase firebase-admin

Firebase 让您能够将 Firebase Admin SDK 添加到您的服务器

FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.getApplicationDefault())
.setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
.build();

FirebaseApp.initializeApp(options);
Run Code Online (Sandbox Code Playgroud)

以前,我使用了以下代码,但是,我现在在 Eclipse 中收到一条消息“不推荐使用构造函数 FirebaseOptions.Builder()”。

InputStream serviceAccount = context.getResourceAsStream("/WEB-INF/[my-web-token].json");
    try {
        options = new FirebaseOptions.Builder() // <--DEPRECATED
            .setCredentials(GoogleCredentials.fromStream(serviceAccount))
            //.setDatabaseUrl(FIREBASE_DATABASE_URL)
            .build();
        } catch(Exception e) {
            e.printStackTrace();
        }

        firebaseApp = FirebaseApp.initializeApp(options);
Run Code Online (Sandbox Code Playgroud)

果然,Firebase建议

Builder() 此构造函数已弃用。改用 builder() 。

构造函数现在看起来像这样

公共静态 FirebaseOptions.Builder 构建器 ()

这是如何实现的?如果我只是更换

FirebaseOptions options = FirebaseOptions.Builder()
...
Run Code Online (Sandbox Code Playgroud)

与新的建设者...

FirebaseOptions options = FirebaseOptions.builder()
...
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

FirebaseOptions.builder 无法解析为类型

并且该文件将无法编译。

有人可以告诉我如何使用新的构造函数或指向我更新的 Firebase 文档吗?我找不到。

Dou*_*son 7

这是 Firebase Admin SDK for Java版本 7.0.0 中的重大更改。发行说明说:

此版本包含多项重大 API 更改。有关更多详细信息,请参阅 Java Admin SDK v7迁移指南

如果您导航到该指南,遗憾的是它没有解决这种特定情况(尽管FCM 通知生成器记录类似的重大更改)。构建器构造函数被更改为方法而不是对象构造函数。(请随时使用该页面上的“发送反馈”链接来表达您对这些缺失信息的看法。)

但是,您可以看到FirebaseOptions.builder()的 API 文档是开始构建 FirebaseOptions 的新方法。您可以看到旧的 Builder 构造函数已被弃用

因此,您应该确保在您的依赖项中使用 Admin SDK 7.xx 版,这应该允许您FirebaseOptions.Builder使用新方法调用创建一个新对象:

FirebaseOptions.Builder builder = FirebaseOptions.builder()
Run Code Online (Sandbox Code Playgroud)

或者,像您最初尝试的那样使用内联:

FirebaseOptions options = FirebaseOptions.builder()
    .setCredentials(GoogleCredentials.getApplicationDefault())
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);
Run Code Online (Sandbox Code Playgroud)


Pet*_*dad 6

尝试:

FirebaseOptions.Builder options = FirebaseOptions.builder()
Run Code Online (Sandbox Code Playgroud)