如何使用 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 身份验证 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()接受"user"作为DOM中单击事件的参数,以便针对数据库中指定用户的文档(我不知道为什么我没有早点想到这一点!await firebase.auth().currentUser.delete()会从 Firebase 授权中移除当前用户。

最新更新