Rus*_*art 4 android firebase firebase-admin
我正在构建一个由Firebase应用支持的Android应用,我希望能够创建一个可以编辑或删除其他用户帐户的管理员帐户.如果我理解正确,Firebase Admin SDK应该允许我这样做.所以我按照这里的说明操作.
在我的应用中设置Admin SDK.我在build.app中添加了以下内容:
compile 'com.google.firebase:firebase-admin:4.1.1'
Run Code Online (Sandbox Code Playgroud)
在我的Application类中,我添加了这个:
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);
}
Run Code Online (Sandbox Code Playgroud)
但是,它告诉我:
根据文档,FirebaseOptions.Builder.setCredential()是一种新方法,它取代了已弃用的方法FirebaseOptions.Builder.setServiceAccount().但setServiceAccount()也不存在.
这里发生了什么?
您不能在Firebase Android客户端库旁边的Android应用中使用Firebase Admin SDK.SDK都提供了具有完全相同的包和类名的类,因此它不可能同时使用它们(编译器如何知道您打算在应用程序中构建哪一个?).
例如,请查看Android客户端库中的FirebaseOptions Builder的javadoc:
com.google.firebase.FirebaseOptions.Builder
现在看一下java Admin SDK中的同一个类(注意URL不同):
com.google.firebase.FirebaseOptions.Builder
你可以亲眼看到它们是不同的东西,即使它们具有相同的名称.因此,您的编译器正在查看Android SDK定义,而不是管理SDK定义.
正如Frank所说,您可能不想在Android应用程序中使用Admin库.如果您想使用管理员SDK,请从您控制的服务器上使用它,并让Android应用程序与其进行通信(如果需要).
| 归档时间: |
|
| 查看次数: |
4496 次 |
| 最近记录: |