从 Firebase 身份验证中删除用户
Posted
技术标签:
【中文标题】从 Firebase 身份验证中删除用户【英文标题】:Remove user from Firebase Auth 【发布时间】:2021-02-28 01:34:41 【问题描述】:我正在使用来自 firebase 的电子邮件/密码身份验证来管理对我的 Angular 应用程序的身份验证。我创建了一个管理面板来管理基于 CRUD 的用户来控制应用程序上的用户。
到目前为止,我已经设法创建新用户并使用他们的 localID 来在实时数据库中存储有关该用户的其他信息,例如姓名、年龄等
我遇到的问题是在查看 firebase auth api (https://firebase.google.com/docs/reference/rest/auth#section-create-email-password) 的文档时,它指的是使用当前用户登录时创建的 IdToken。我希望能够编辑/删除与当前登录的用户不同的用户,但我在文档中找不到与此相关的任何内容?
如果我在错误的地方寻找任何帮助,或者如果不可能的话,任何解决方法都非常感谢?
【问题讨论】:
【参考方案1】:从客户端删除与当前登录用户不同的用户似乎是不可能的。不然会不会很危险?
你可以做什么:
创建一个可从客户端调用的云函数, 在这个函数中,检查权限, 然后使用 admin SDK 删除用户exports.deleteUser = functions.https.onCall(async (data, context) =>
const uidToDelete = data.uidToDelete;
const uid = context.auth.uid;
if(!canDelete(uid, uidToDelete))
return "forbidden";
await admin.auth().deleteUser(uidToDelete);
return "done";
);
这在guides 和reference 中有描述。
【讨论】:
耻辱,不明白他们为什么无法实施一种方法来执行此操作,因为将登录的受信任用户将管理该帐户。还是谢谢 要强制只有受信任的用户才能删除其他用户,我们需要一种检查权限的方法,可以使用功能代码,也可以使用专门针对此用例的身份验证的安全规则。您更喜欢编写安全规则而不是函数吗? 我可以尝试使用 SDK,但之前没有任何使用经验。遗憾的是 REST api 只有一半的功能,尽管我使用 firebase auth 来控制访问以上是关于从 Firebase 身份验证中删除用户的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript 从 Firebase 电话身份验证中删除验证码?