Firestore:如何验证数组值和映射动态字段

时间:2018-03-19 11:27:28

标签: firebase firebase-realtime-database google-cloud-firestore firebase-security-rules

它是firebase验证的经典之作:检查成员引用是否确实存在,结构定义如here所示。

"members": {
    "firstUserId" : true,
    "secondUserId" : true,
    "thirdUserId" : true
}

在实时数据库中,它就像

"members":{
  "$user_id":{ ".validate":"root.child('users/' + $user_id).exists() && newData.isBoolean() && newData.val() === true" }
},

但是在Firestore中我们无法遍历文档字段,我们只能验证我们知道名称的字段,似乎。

有人可以说解决方案是将这些ID放在集合中而不是地图中,但是这会阻止我查询文档,例如"我所属的所有对象"。 此外,添加一个集合似乎真的太过分了,因为该集合中的文档绝对是空的。

如果我将该地图转换为集合,我还必须在用户文档上保留对象ID(或引用)的地图,并一次检索一个对象或者有两个请求,其中第二个是"给我ID为X或Y或Z或......的对象的集合。",这不是一个优雅的解决方案。

这个用例有优雅的解决方案吗?

0 个答案:

没有答案