【问题标题】:Give firebase admin rights to xamarin application为 xamarin 应用程序授予 firebase 管理员权限
【发布时间】:2017-12-07 18:16:42
【问题描述】:

在 firebase 控制台中,我可以获取 java 的源代码和一些 adminsdk json 文件以供下载。但是我在 c# xamarin 中工作,它没有 setCredential() 函数。这是我可以在 firebase 控制台中下载的 java 代码

FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");

FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("https://abc-def.firebaseio.com")
.build();

FirebaseApp.initializeApp(options);

但在 xamarin 中,没有 SetCredential 函数。我只能做以下事情:

 FirebaseOptions options = new FirebaseOptions.Builder()
     .SetApplicationId("1:3465124113567:android:81db52b2352255cd")
     .SetDatabaseUrl("https://abc-def.firebaseio.com/")
     .SetStorageBucket("gs://abc-def.appspot.com")
     .SetApiKey("???")
     .SetGcmSenderId("???")
     .Build();
 var firebaseApp = FirebaseApp.InitializeApp(context, options);

如何使用该文件?我在 SetApiKey 中进行了几次尝试,从该文件中设置了一些行,但不知何故,应用程序只是在 InitializeApp 行上崩溃,在输出窗口中没有有意义的解释。我的应用程序如何在 c# - xamarin 中获得管理员权限?

this question 中,我发现 SetCredentials 并不总是存在,但我所有的 xamarin.firebase.xxx 组件都在 10.2.1 版本上,所以这应该不是问题。

【问题讨论】:

    标签: firebase xamarin.android admin


    【解决方案1】:

    请参阅 @Doug Stevenson 的 answer,您使用的是 Firebase Android 客户端库,而不是 Firebase Admin SDK。您可以在 Android 客户端库中阅读 FirebaseOptions.Builder 的 javadoc:

    Android : FirebaseOptions.Builder

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

    Admin SDK : FirebaseOptions.Builder

    它们是不同的东西,在您的项目中,您使用的是 Android SDK 定义而不是管理 SDK 定义。

    【讨论】:

    • 我会在周末之后看看。谢谢。
    • 我试图将 admin SDK 放到与普通 sdk 相同的代码中,只是在一些 #if 条件下,但看起来会太乱。我想我必须另寻出路。或者你认为我应该试一试?
    • @hoacin,正如 Doug Stevenson 所说,“SDK 都为类提供了完全相同的包和类名,因此不可能同时使用它们”。
    猜你喜欢
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2020-12-11
    相关资源
    最近更新 更多