ios - 当允许用户删除他们的帐户时,它只会删除他们的帐户身份验证,这还不够
问题描述
允许用户删除他们的帐户对于使用以下代码删除他们的帐户身份验证没有问题。
func deleteUser()
{
let user = Auth.auth().currentUser
user?.delete
{
error in
if error != nil
{
print("ERROR DELETING ACCOUNT")
}
else
{
print("ACCOUNT DELETED")
}
}
}
这可以正常工作,但对实时数据库中的用户 ID 和所有附加的子项没有任何作用。
如何同时允许从实时数据库中删除用户 ID 和连接的子项?
解决方案
你不想真正同时做到这一点。您需要先删除数据库项目,而登录用户仍然有一个有效的 ID 令牌可用于向实时数据库识别用户。这对于评估安全规则可能很重要。只有在完成所有数据库工作后,才能删除该帐户。
如果您想使用后端来执行此操作,则可以使用 Cloud Functions 编写Firebase Auth onDelete 触发器,该触发器会在客户端上发生删除后为用户删除所有内容。这没关系,因为您还将使用 Firebase Admin SDK 删除所有数据,它会绕过所有安全规则。
推荐阅读
- c++ - 关于与类成员访问有关的术语“(严格)别名违规”
- java - Apache POI - 基于公式的条件格式的主题颜色 (XSSFFontFormatting)
- python - 使用自己的 python 调试器获取系统调用的问题
- powershell - gsutil cp 命令如何复制早于 x 分钟的文件?
- r - 如何使用 R 中的 NetworkD3 从 SankeyNetwork 水平移动节点?
- c# - 如何在运行时设置代理?
- python - 在 conda 环境中为 pip 制作一个二元轮
- ubuntu - 在 Ubuntu 上对一个 Kinect v2 进行多次读取访问
- ios - 在我的 iOS 应用程序中添加 PayPal pod 后获取 UIWebview api 弃用消息
- javascript - 未捕获的类型错误:无法在加号处设置 null 的属性“值”(js.js:52)