[英]How to delete user with Vue.js Firebase UID
我试图在我的 Vue.js Firebase 应用程序中实现一个通过 UID 删除/移除用户的功能。 该应用程序设置为允许通过电子邮件和密码在 Firebase 身份验证中注册用户。 登录后,用户应该能够单击删除以从 Firebase 身份验证中删除他/她的电子邮件和密码以及用户数据。 到目前为止,我对删除功能有以下几点:
async deleteProfile () {
let ref = db.collection('users')
let user = await ref.where('user_id', '==',firebase.auth().currentUser.uid).get()
user.delete()
}
...但我发现 user.delete() 不是一个函数。 如何设置此功能以删除身份验证和数据库中的用户? 谢谢!
更新功能
async deleteProfile () {
let ref = db.collection('users')
let user = await ref.where('user_id', '==', firebase.auth().currentUser.uid).get()
await user.ref.delete()
await firebase.auth().currentUser.delete()
}
在您的代码中, user
是一个DocumentSnapshot类型的对象。 如果要删除文档,可以使用user.ref.delete()
。 它返回一个承诺,所以你需要等待它。
删除文档不会同时删除 Firebase 身份验证中的用户帐户。 如果要删除用户帐户,则必须为此使用 Firebase Authentication API。 firebase.auth().currentUser.delete()
。
尝试这个
<button class="..." @click="deleteProfile(currentUser.uid)">Delete</button>
和
methods: {
async deleteProfile(dataId) {
fireDb.collection("yourCollection").doc(dataId).delete()
.then(() => {
alert('Deleted')
})
}
}
根据道格史蒂文森的回答,这是最终起作用的功能。
async deleteProfile (user) {
await db.collection("users").doc(user).delete()
await firebase.auth().currentUser.delete()
}
await db.collection("users").doc(user).delete()
从 DOM 中的 click 事件中接受“user”作为参数,以便定位数据库中指定用户的文档(我不不知道为什么我没有早点想到这一点!) await firebase.auth().currentUser.delete()
从 firebase 授权中删除 currentUser。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.