繁体   English   中英

如何使用 Vue.js Firebase UID 删除用户

[英]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.

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