我正在关注最新版本的 Firebase Google Web SDK。从登录到注册和注销,一切都正常。我想让用户删除自己的帐户并遵循 firebase.User
类的 API 引用。我还阅读了他们关于 managing users 的文档.
这是我使用的代码:
function deleteAccount () {
console.log('delete account!!')
const auth = firebase.auth()
console.log({auth})
auth.delete().then(function () {
console.log('delete successful?')
const user = firebase.auth().currentUser
console.log({user})
store.dispatch(forgetUser())
routerReset('GetStarted')
}).catch(function (error) {
console.log({error})
// An error happened.
})
}
函数delete
似乎可以从firebase.Auth
对象工作并解决 promise 。如果对 signOut
执行相同的操作,日志会显示一个 undefined object ,但是这里:
console.log({user}) // { user: Firebase.User object }
没有发出错误。
注意:这是一个 react native 应用程序。
最佳答案
您似乎缺少对 currentUser
的引用。
来自Firebase documentation on deleting a user :
You can delete a user account with the
delete
method. For example:var user = firebase.auth().currentUser; user.delete().then(function() { // User deleted. }, function(error) { // An error happened. });
Important: To delete a user, the user must have signed in recently. See Re-authenticate a user.
如上所述,您的代码未引用 currentUser
。我不确定在 auth object 上调用 delete
是什么本身就是如此。
更新:我刚刚运行此命令来验证行为:
firebase.auth().currentUser.delete().then(function () {
console.log('delete successful?')
console.log(app.auth().currentUser)
}).catch(function (error) {
console.error({error})
})
一开始我收到了 400,响应正文显示我登录已经太久了。重新验证并再次尝试后,我得到:
delete successful?
null
关于javascript - Firebase 用户删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39634576/