繁体   English   中英

使用 Vue.js 和 Firebase 删除用户

[英]Delete user with Vue.js and Firebase

我无法从 vue.js 中的 firebase 中删除帐户。 我使用了 firebase 文档。 这是删除按钮:

<template>
[...]
      <div class="text-center">
        <button type="button" class="btn text-white my-4" @click="$emit('deleteUser')">Delete account</button>
      </div>
[...]
</template>

这是方法:

<script>
[...]
import firebase from "firebase"
import {router} from '../main'

export default {
    [...]
  },
  methods: {
    [...]
  deleteUser () {
    //const userRef = firebase.auth().currentUser;

    this.usersRef.remove().then(function() {
      // User deleted.
      console.log("User deleted")
      router.push('/')
    }).catch(err => {
          this.error = err.message
      // An error happened.
      console.log("User NOT deleted")
    });
  }
};
</script>

有人可以帮忙吗? 帐号还在,无法删除。 控制台中的零信息。

如果要删除 Firebase 身份验证中存在的用户,您有两种可能性:

1/ 使用 JavaScript SDK(因为你的应用是用 Vue.js 制作的)

您调用delete()方法,如下所示:

const user = firebase.auth().currentUser;
user.delete()
.then(() => {
   //....
})
.catch(err => {
  if (err.code === "auth/requires-recent-login") {
     //Re-authenticate the user and call again the Vue.js method
  } else {
     //....
  }
})

但是请注意,此方法“要求用户最近登录。如果不满足此要求,请要求用户再次进行身份验证,然后调用firebase.User.reauthenticateWithCredential ”。 auth/requires-recent-login代码的错误是“如果用户的最后一次登录时间未达到安全阈值,则抛出”。

因此,只有登录用户才能从前端调用此方法,以删除他/她自己的帐户。

2/ 使用管理员 SDK

您可以使用 Admin SDK 的deleteUser()方法,例如在 Cloud Function 中。

在这种情况下,不需要让用户登录,因为这是在后端执行的,因此可以删除任何用户。 例如,您可能有一个由管理员用户触发的 Callable Cloud Function。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM