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

The constructor FirebaseOptions.Builder() is deprecated

Firebase 使您能够 add the Firebase Admin SDK to your server:

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

FirebaseApp.initializeApp(options);

以前,我使用了以下代码,但是,我现在在 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);

果然,Firebase advises:

Builder() This constructor is deprecated. Use builder() instead.

构造函数现在看起来像 this:

public static FirebaseOptions.Builder builder ()

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

FirebaseOptions options = FirebaseOptions.Builder()
...

与新的建设者...

FirebaseOptions options = FirebaseOptions.builder()
...

我收到一个错误:

FirebaseOptions.builder cannot be resolved to a type

并且文件将无法编译。

谁能告诉我如何使用新的构造函数或向我指出更新后的 Firebase 文档?我找不到。

尝试:

FirebaseOptions.Builder options = FirebaseOptions.builder()

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

This release contains several breaking API changes. See the Java Admin SDK v7 migration guide for more details.

如果您导航到该指南,不幸的是它没有解决这种特定情况(尽管有 similar breaking change documented for the FCM notification builder)。构建器构造函数已更改为方法而不是对象构造函数。 (请随时使用该页面上的“发送反馈”link 来表达您对此缺失信息的看法。)

但是,您可以看到 FirebaseOptions.builder() is the new way to start build of FirebaseOptions. And you can see that the old Builder constructor is deprecated 的 API 文档。

因此,您应该确保您在依赖项中使用的是 Admin SDK 版本 7.x.x,这样您就可以创建一个新的 FirebaseOptions.Builder 使用新方法调用的对象:

FirebaseOptions.Builder builder = FirebaseOptions.builder()

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

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

FirebaseApp.initializeApp(options);