Nativescript:如何以管理员身份登录并管理Firebase中的用户帐户

问题描述 投票:1回答:2

我很难找到如何在订单管理用户帐户中使用Firebase管理服务的解决方案(特别是从Firebase Auth中移除用户)。

这个nativescript-plugin-firebase提供了对firebase服务的所有可能调用,但是没有关于管理具有管理员权限的用户的描述。也许有人有类似的问题或可以分享一个解决方法?

typescript firebase-authentication nativescript nativescript-firebase
2个回答
2
投票

以下是我在我的应用中管理此操作的方法:

  1. 我的用户拥有“admin”,“manager”等权限。
  2. 当“admin”登录到应用程序时,他们可以通过应用程序界面添加,更新,删除其他用户
  3. 这是通过将更改请求推送到实时数据库中的“updateUser”节点来实现的 - 而不是数据库中的实际用户记录。确保Firebase规则仅允许“admin”用户写入此节点。
  4. 创建此新节点后,我将禁用表单并提交按钮,以便不再进行更改。然后,我让应用程序听取任何更改: 这个新创建的“updateUser”节点(类似于:updateUser/xkekek393kdkd) 实际的用户个人资料记录
  5. 我有一个Firebase云功能,可以监听对“updateUser”节点的任何写入
  6. 当该功能触发时,它使用admin-sdk对用户配置文件及其Firebase身份验证帐户(电子邮件地址,密码等)执行实际更改。然后,admin-sdk使用以下状态更新“updateUser”节点: { status: "success", message: "User updated" } 要么 { status: "fail", message: "Email address already in use" }
  7. 客户端应用程序检测到对“updateUser”节点的更改,并向用户提供操作已完成的反馈。
  8. 客户端应用程序还检测对真实用户配置文件节点的更改并相应地更新UI。

好处:

  • 只有受信任的资源(Firebase云功能)才能访问管理员权限。
  • 所有业务逻辑和验证都在服务器端执行,而不是在客户端执行。

4
投票

NativeScript插件是Firebase客户端库的包装器,您可以在发布给用户的NativeScript应用程序中使用它。

Firebase管理SDK授予对Firebase项目的所有后端资源的管理访问权限。因此,它们仅用于受信任的环境,例如您的开发计算机,您控制的服务器或云功能。

它们明确不适用于您发送给客户端的应用程序代码,因为Admin SDK需要运行的凭据将授予用户应具有的更多权限。

如果要创建一个管理员页面,在Admin SDK不可用的平台上公开Admin SDK的某些功能,您可以将该功能包含在云功能中,确保调用者获得适当授权(如图所示) here),然后从您的应用程序中调用它。

© www.soinside.com 2019 - 2024. All rights reserved.