[英]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 身份验证中存在的用户,您有两种可能性:
您调用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
代码的错误是“如果用户的最后一次登录时间未达到安全阈值,则抛出”。
因此,只有登录用户才能从前端调用此方法,以删除他/她自己的帐户。
您可以使用 Admin SDK 的deleteUser()
方法,例如在 Cloud Function 中。
在这种情况下,不需要让用户登录,因为这是在后端执行的,因此可以删除任何用户。 例如,您可能有一个由管理员用户触发的 Callable Cloud Function。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.