【发布时间】: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