gpt4 book ai didi

android - 适用于 Android 的 Firebase Admin SDK,未找到方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:59 24 4
gpt4 key购买 nike

我正在构建一个由 Firebase 应用程序支持的 Android 应用程序,我希望能够创建一个可以编辑或删除其他用户帐户的管理员帐户。如果我理解正确,Firebase Admin SDK 应该允许我这样做。所以我按照说明 here .

在我的应用中设置 Admin SDK。我在 build.app 中添加了以下内容:

compile 'com.google.firebase:firebase-admin:4.1.1'

在我的应用程序类中,我添加了这个:

FileInputStream serviceAccount = null;
try {
serviceAccount = new FileInputStream("app/<MY-DATABASE>.json");
} catch (FileNotFoundException e) {
e.printStackTrace();
}

if (serviceAccount != null) {
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("https://<MY-APP>.firebaseio.com/")
.build();

FirebaseApp.initializeApp(options);
}

但是,它告诉我:

  • FirebaseOptions.Builder 中没有名为 setCredential() 的方法,并且
  • FirebaseApp.initializeApp() 采用 Context 对象,而不是 FirebaseOptions。

根据文档,FirebaseOptions.Builder.setCredential() 是一种新方法,它取代了已弃用的 FirebaseOptions.Builder.setServiceAccount()。但是 setServiceAccount() 也不存在。

这是怎么回事?

最佳答案

您不能在 Android 应用中将 Firebase Admin SDK 与 Firebase Android 客户端库一起使用。这两个 SDK 都提供了具有完全相同的包和类名的类,因此它不可能同时使用它们(编译器如何知道您打算将哪一个构建到您的应用程序中?)。

例如,查看 Android 客户端库中 FirebaseOptions Builder 的 javadoc:

com.google.firebase.FirebaseOptions.Builder

现在查看 java Admin SDK 中的同一个类(注意 URL 不同):

com.google.firebase.FirebaseOptions.Builder

您可以亲眼看到它们是不同的东西,即使它们具有相同的名称。因此,您的编译器正在查看 Android SDK 定义,而不是管理 SDK 定义。

正如 Frank 所说,您可能不想在 Android 应用程序中使用管理库。如果您想使用管理 SDK,请从您控制的服务器上使用它,并在需要时让您的 Android 应用与其通信。

关于android - 适用于 Android 的 Firebase Admin SDK,未找到方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42097740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com