【发布时间】:2018-06-26 06:29:41
【问题描述】:
系统本身很容易理解,但实施起来很棘手。此外,安全原因让我思考如何做到这一点。
我正在考虑使该功能在前端 Firebase 脚本中工作,只需在那里执行所有操作,例如检查该用户是否已经发布了喜欢/不喜欢的内容,如果用户点击则删除/添加/切换。问题在于这种方法的安全性:用户不能创建一个不会检查是否已发布的新功能吗?
如果可能的话,这个系统应该如何工作?现在我的逻辑:
Clicked like:
locally activate/deactivate like button and remove dislike active class if on
check docs for this user/doc like
`1`? -> remove this doc from collection
`0`? -> switch to `1`, because `0` is dislike
`undefined`? -> create doc with `vote: 1`
change (+1/-1 or +2/-2) the value of post votes fields
不喜欢也一样。但是对于这么小的功能,这听起来真的很复杂。也许可以在不失去那种安全级别的情况下用用户/投票来挥动额外的收集?或者使用 http-triggers 可能会有所帮助?这个特性在一些类似 PHP 的语言上会容易得多,所以我现在吓坏了。
【问题讨论】:
标签: database firebase google-cloud-platform google-cloud-firestore data-modeling