javascript - Firebase 用户删除不起作用

标签 javascript firebase react-native firebase-authentication

我正在关注最新版本的 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/

相关文章:

javascript - 可折叠侧边栏.....想要修复侧边栏的页眉和页 footer 分

javascript - 为什么我的 javascript alert() 代码在 <h1> html 标记之前运行?

JavaScript 似乎无法在 Chrome 中运行

javascript - 用 jQuery 替换字符串的限制

android - 如何在 Firebase 中执行连接查询?

javascript - 显示排序的 Firebase 数组的特殊情况(使用 AngularJS)

ios - Cocoapods 总是安装旧的 React (0.11.0)

javascript - 在 firebase 云函数中使用 set timeout 函数是否明智?

javascript - 处理长文本的聪明方法

android - ReactNative使用Android Studio添加Gradle依赖关系