首页 > 解决方案 > ReactJS 和 Firebase 用户管理员

问题描述

我正在尝试创建一个 React 应用程序,其中具有“管理员”角色的用户可以在 firebase 中创建一个新用户。

工作流程如下所示:

normal login -> check userRole -> if admin: show createUserForm.

据我从文档中阅读,我需要一个 Admin SDK,但问题是 - 如何在客户端应用程序上实现它?有没有人经历过这个过程?

标签: reactjsfirebasefirebase-authenticationfirebase-admin

解决方案


Firebase Admin SDK 只能在受信任的环境中使用,即您控制的服务器或 Cloud Functions。它不应该(也不能)在客户端 React 应用程序中使用。

如果您希望允许您的 React 应用程序的某些用户为其他用户创建帐户,您需要将该部分流程移动到可以使用 Admin SDK 的可信环境。

所以流程变成:

正如你所看到的,这是相当复杂的。我强烈建议考虑其他用例,例如您希望管理员控制的实际情况。在 Firebase 身份验证中启用提供程序后,任何用户都可以使用该提供程序创建帐户。试图从你的应用程序代码中控制它只是一个问题的根源。通常,您实际上试图控制的是特定用户帐户可以做什么:例如,只有经过批准的用户才能访问某些数据。根据您存储此数据的位置,这更容易控制。例如:如果您将数据存储在 Firebase 数据库中,通常会在这种情况下创建批准用户的白名单(或相反:禁止用户的黑名单)。


推荐阅读