Android 如何在firebase中创建基于角色的访问控制或自定义声明

Android 如何在firebase中创建基于角色的访问控制或自定义声明,android,firebase,firebase-realtime-database,firebase-authentication,google-cloud-firestore,Android,Firebase,Firebase Realtime Database,Firebase Authentication,Google Cloud Firestore,我正在用firebase auth和firebase ui auth构建一个Android应用程序,用于Firestore中的身份验证和数据。我想让一些功能只对管理员用户可用,所以我需要实现某种基于角色的访问控制。我在Firebase文档中找不到任何示例。但我已经找到了。它描述了firebase管理库中的功能 我刚刚将我的Firebase库更新为15.0.0,但Firebase admin目前仅为5.9.0版,不会在Android中加载,因为我遇到以下错误: 所有firebase库必须高于或低于

我正在用firebase auth和firebase ui auth构建一个Android应用程序,用于Firestore中的身份验证和数据。我想让一些功能只对管理员用户可用,所以我需要实现某种基于角色的访问控制。我在Firebase文档中找不到任何示例。但我已经找到了。它描述了firebase管理库中的功能

我刚刚将我的Firebase库更新为15.0.0,但Firebase admin目前仅为5.9.0版,不会在Android中加载,因为我遇到以下错误:

所有firebase库必须高于或低于14.0.0

有几个问题:

  • 我是否需要创建一个单独的Web管理项目来使用firebase管理库?推荐的方法是什么
  • 这些索赔存储在哪里?我假设它在我的firebase项目之外,但是在console authentication/user表中看到这些信息会很酷
  • 有人可以分享一个Android/Java的例子,告诉我如何从我的Android应用程序中阅读这个新的自定义“管理员”声明吗?该页面似乎只包含一个JavaScript客户端示例

  • 文件对此非常清楚。 您不能在客户端上使用firebase admin。这在您的服务器上运行

  • 您需要使用firebase admin的服务器端代码来设置自定义声明,因为它们不是从客户端设置的。您不能让客户端定义其权限。这是从服务器上完成的

  • 声明存储在项目的Firebase Auth users数据库中,并传播到相应的用户ID令牌。从控制台看不到它。您可以通过AdminSDK查找用户来检查这些声明

  • 您现在可以直接从。
    getClaim
    方法返回包含声明的映射


  • 您可以使用安全规则实现基于角色的访问控制。你查过这一页了吗?