【问题标题】:Firebase: Allow deleting user content after delete accountFirebase:允许在删除帐户后删除用户内容
【发布时间】:2018-06-17 23:32:44
【问题描述】:

在用户从我的应用程序中删除帐户后,我试图删除用户在 Firestore 中的内容。没有规则,这似乎可行,但是有规则我会收到权限错误。我假设这是因为用户已经被删除并且不允许再删除内容。


代码:

this.currentUser.delete().then( () => {
  //delete content from firestore
}); 

规则:

match /users/{userId} {
  allow read, update, delete: if request.auth.uid == userId;
  allow create: if request.auth.uid != null;
}

解决此问题的最佳方法是什么?

我考虑过的事情:

  • 删除帐号前先删除内容,但我认为如果由于某种原因删除帐号会失败,这会出现问题。

  • allow delete: if request.auth.uid != null 但这不是意味着任何用户都可以删除任何人的内容吗?

  • 使用云函数触发器。这是一个选择,但我想知道我是否可以避免这种情况。

【问题讨论】:

  • 为什么要避免使用 Cloud Functions?这是迄今为止最好的解决方案。
  • @DougStevenson - 好点。并不是真的想避免,只是想知道在我还没有设置规则的情况下是否可以保留现有的解决方案。但我认为我确实会继续采用这种方法。谢谢。

标签: firebase firebase-authentication google-cloud-firestore firebase-security


【解决方案1】:

currentUser.delete() 方法是您的脚本/逻辑调用的东西(不是最终用户)。因此,如果您想提供一个“删除帐户”按钮,这很好,但在执行 currentUser.delete() 方法之前,它的点击侦听器会触发一个名为 ...我不知道,deleteUserData(uid).then 的函数。

【讨论】:

  • 如果我理解正确,您提出的建议类似于我在原始帖子中“我考虑过的事情”中的第一点。我只是认为确保首先删除用户的帐户(以防导致错误)然后继续删除用户的内容更有意义。还是我在这里想多了?
猜你喜欢
  • 2016-10-05
  • 2021-01-02
  • 2016-10-29
  • 2020-05-06
  • 2018-01-28
  • 2019-10-19
  • 1970-01-01
  • 2021-01-26
  • 2020-03-11
相关资源
最近更新 更多