【发布时间】:2018-08-27 03:56:47
【问题描述】:
我希望在我的 Firebase 数据库中只接受一次值。然后一旦有人向数据库提交了任何内容,他们将无法再次输入任何数据,直到他们删除之前的值。
如何实现这个".write": "!data.exists() || !newData.exists()"
以符合我们要求的方式?
【问题讨论】:
标签: firebase firebase-realtime-database firebase-security
我希望在我的 Firebase 数据库中只接受一次值。然后一旦有人向数据库提交了任何内容,他们将无法再次输入任何数据,直到他们删除之前的值。
如何实现这个".write": "!data.exists() || !newData.exists()"
以符合我们要求的方式?
【问题讨论】:
标签: firebase firebase-realtime-database firebase-security
这个问题有几个部分:
将用户与他们自己的数据相关联的第一步是最简单的,方法是将每个用户的数据存储在其自己的节点中,该节点由用户的 UID 标识。例如。如果你的 UID 是 abi5586378 而我的 UID 是 puf209103,我们的数据会是这样的:
"userData": {
"abi5586378": {
"name": "Abhishek Singh"
}
"puf209103": {
"name": "Frank van Puffelen"
}
}
为了确保这一点,我们可以使用以下规则:
{
"rules": {
"userDara": {
"$uid": {
".write": "
auth.uid === $uid && /* user can only write their own data */
(
!data.exists() || /* user can write if there is no data yet */
!newData.exists() /* user can clear existing data */
)
"
}
}
}
}
【讨论】: