Firebase 用户删除不起作用

jsd*_*rio 0 javascript firebase react-native firebase-authentication

我正在关注最新版本的 Firebase Google Web SDK。从登录到注册和注销的一切都很好。我想让用户删除自己的帐户并遵循firebase.User类的 API 参考。我还阅读了他们关于管理用户的文档。

这是我使用的代码:

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.
  })
}
Run Code Online (Sandbox Code Playgroud)

该函数delete似乎从firebase.Auth对象工作并解决了承诺。如果signOut对日志做同样的事情会出现一个未定义的对象,但是在这里:

console.log({user}) // { user: Firebase.User object }
Run Code Online (Sandbox Code Playgroud)

不会发出错误。

注意:这是一个 react-native 应用程序。

Fra*_*len 6

您似乎缺少对currentUser.

关于删除用户Firebase 文档中

您可以使用该delete方法删除用户帐户。例如:

var user = firebase.auth().currentUser;

user.delete().then(function() {
  // User deleted.
}, function(error) {
  // An error happened.
});
Run Code Online (Sandbox Code Playgroud)

重要提示:要删除用户,用户必须最近登录。请参阅重新验证用户。

如上所述,您的代码没有引用currentUser. 我不知道什么叫deleteAUTH对象本身一样。

更新:我只是运行它来验证行为:

firebase.auth().currentUser.delete().then(function () {
  console.log('delete successful?')
  console.log(app.auth().currentUser)
}).catch(function (error) {
  console.error({error})
})
Run Code Online (Sandbox Code Playgroud)

起初我得到了 400,响应正文说我登录后已经太久了。重新进行身份验证并再次尝试后,我得到:

删除成功?

空值