【问题标题】:How to add Admin SDK api to android project如何将 Admin SDK api 添加到 android 项目
【发布时间】:2019-05-14 13:34:06
【问题描述】:

我目前正在开发一个需要管理员和普通用户的 Android 应用程序。举例来说,管理员可以管理普通用户,如删除、修改其内容。根据我的研究,firebase 提供的 Admin SDK API 可以真正解决这个问题,但根据他们的文档,Admin SDK 不能在 Android 项目本身中使用,应该放在项目的服务器端。此外,我尝试将 Admin SDK debendence 添加到我的项目依赖项中,但库之间存在冲突。我知道将 Admin SDK 添加到 Bulid.gradle(应用程序)是错误的,但我没有设法弄清楚如何将 Admin SDK 添加到我的项目中。

【问题讨论】:

    标签: android firebase firebase-realtime-database google-admin-sdk


    【解决方案1】:

    您的发现是正确的。您的案例似乎适合使用 Firebase Admin SDK。

    Firebase Admin SDK 需要一个服务器应用程序,它将在该应用程序上进行初始化。

    Here 您可以找到设置 Firebase Android SDK 的先决条件的完整列表。

    您可以设置 Firebase 函数,它将保存您的服务器端代码。在这些函数中,您还可以初始化 Firebase Admin SDK。

    有关 Firebase 函数的更多信息,请参阅 here

    Here 您可以找到一个使用 Admin SDK 的示例 Firebase 应用程序。该示例展示了如何验证对 JSON API 的访问权限,以仅允许特定 Firebase 用户访问数据。

    Firebase 函数可用作无服务器代码,在您开发服务器端逻辑时,然后将其部署到 Google 云上的托管环境中。这些函数可以包含您希望使用 Admin SDK 拥有的所有逻辑。

    【讨论】:

    • 首先,谢谢你的回复,我需要知道这个依赖应该放在哪里。依赖项 { 实施 'com.google.firebase:firebase-admin:6.6.0' }
    • 您提到的依赖项是 Firebase Admin Java SDK - github.com/firebase/firebase-admin-java。如果您确实有使用 Java 运行的服务,则添加此依赖项将启用对 Firebase 服务的访问。接下来,github.com/firebase/quickstart-android/tree/master/functions 是一个示例 Android 项目,它使用了 Firebase 函数。 Firebase 函数位于“functions”目录中。
    • 所以,想象一下:您需要一个服务器应用程序才能使用 Firebase Admin SDK。如果您确实在某处运行了 Java 服务,那么您可以使用您提到的依赖项。如果不是这种情况,那么最简单的方法就是选择 Firebase Functions。它们将用作 NodeJS 微服务,其中包含所需的所有服务器端逻辑(包括 Firebase Admin SDK 的使用)。
    • 我需要做的就是让管理员用户完全控制应用程序,例如删除其他用户或在需要时编辑他们的数据
    • @Alex 使用 Admin SDK 需要您指定凭据,以授予对 Firebase 项目的完全管理访问权限。这在 Android 应用程序中是不可能的,因为这会带来巨大的安全风险。如果您也将该应用程序发送给您的普通用户,他们可以反编译该应用程序,获取这些凭据,例如也删除您的整个数据库。因此,您应该只在受信任的环境中使用 Admin SDK,然后(安全地)在 Android 应用中向管理员公开特定功能。
    猜你喜欢
    • 2020-11-27
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2019-04-18
    相关资源
    最近更新 更多