【问题标题】:Firebase security - updating Firestore ddbbFirebase 安全 - 更新 Firestore ddbb
【发布时间】:2018-05-07 23:01:22
【问题描述】:

我有 2 个集合:Users 和 Recipes (1:N)

Recipes有likes有users.uid:likes: ['id1', 'id2' ... ]

知道了这一点,我怎样才能只推送我的 id 而避免推送其他用户 id?

【问题讨论】:

  • “推”是什么意思?您能否更具体地说明您要允许或禁止的内容?
  • 向数组添加内容,如likes.push('userId')
  • 我要避免的就是这个,push其他用户id --> likes.push('userId1', 'userId2', 'userId3')

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


【解决方案1】:

如果您想将项目添加到 Firestore 中的数组,您必须读取文档,将数组的内容设置为您想要的任何内容,然后将整个数组写回文档。数组字段没有推送操作。

【讨论】:

  • 我应该不能写整个数组,否则我可以修改其他人的喜欢
  • 那么您需要对数据进行不同的建模。 firebase.google.com/docs/firestore/solutions/arrays
  • 有趣...所以我必须将所有数组更改为对象?可能这仅适用于您想用作过滤器的数组,对吧?在我的情况下,我不需要按likes 过滤,只需检查indexOf() 如果我在那个食谱上有userId
  • 如果您想使用这些数组值进行过滤,是的,您将不得不使用对象。
  • 不,我不想按喜欢过滤。当我需要按喜好​​过滤时,我可以使用该逻辑,但这是另一个属性。过滤器只是一个包含用户 ID 的数组
猜你喜欢
  • 2019-04-27
  • 2021-04-09
  • 1970-01-01
  • 2018-10-11
  • 2020-06-19
  • 2019-01-15
  • 2018-03-27
  • 1970-01-01
  • 2020-07-03
相关资源
最近更新 更多