Swift 如何自动删除用户和用户';s数据分别来自Firebase Auth和实时数据库?
一些背景 创建用户帐户时,我使用回调链接按顺序1>2>3执行3项操作Swift 如何自动删除用户和用户';s数据分别来自Firebase Auth和实时数据库?,swift,firebase,firebase-realtime-database,firebase-authentication,firebase-storage,Swift,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Storage,一些背景 创建用户帐户时,我使用回调链接按顺序1>2>3执行3项操作 在Firebase Auth中创建用户(使用createUser(带电子邮件…)的标准方式) 我将用户的个人资料图片上传到Firebase存储,并捕获返回的downloadUrl,以便在步骤3中使用 我将用户的其他信息(包括步骤2中的下载URL)存储在实时数据库的节点中(由$userid键入) 现在问题解决了 我提供了一个名为“删除帐户”的按钮,该按钮应允许用户删除所有内容。也就是说,清除他们在实时数据库中的所有数据,清除他们
createUser(带电子邮件…
)的标准方式)downloadUrl
,以便在步骤3中使用下载URL
)存储在实时数据库的节点中(由$userid
键入)// start by atomically deleting all the user data from the Realtime Database using the fanout system.
- get all appropriate locations and save in fanout dictionary
- update all these locations to nil // atomic goodness :)
-callback:
-on failure:
- just return // no worries, nothing has changed yet :/
-on success:
// proceed to delete user files on firebase storage
- delete path $userid on firebase storage
-callback:
-on failure: // this is bad, no idea what to do :(
-on success:
// proceed to delete account from Auth
- delete user account from Auth
-callback:
-on failure: // this is terrible, also, it could happen often b/c firebase does ask for re-authentication sometimes :(
-on success: // thank goodness! I have an authListener somewhere ready to show the 'signInViewController' :)
如何以原子方式处理这种多系统(身份验证、存储、实时数据库)操作?我已经查看了事务,但看不出它们如何适应这种情况-文档只显示它们在RealtimeDB中用于增加喜欢/明星等的计数器
非常感谢您的帮助。因此,主要问题是,如果您试图删除的数据仅被部分删除,该怎么办 我认为你应该考虑一种方法,如果出现问题,可以帮助你恢复它 我现在不在我的计算机上,但我建议您尝试下载要删除的数据,并且只有成功删除本地副本,否则您应该能够轻松恢复它 编辑:如果我们谈论的是大量的存储,而不是本地拷贝,那么你可以在云端制作 因此,首先复制此数据,然后删除它,然后删除数据库数据(以前也复制过),然后可以删除用户帐户,最后可以删除副本