我想在我的Firebase数据库中只接受一次值。然后,一旦有人向数据库提交了任何内容,他们将无法再次输入任何数据,直到他们删除了之前的数据。
如何实施此".write": "!data.exists() || !newData.exists()"
以符合我们要求的方式?
答案 0 :(得分:0)
这个问题有几个部分:
通过将每个用户的数据存储在由用户的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 */
)
"
}
}
}
}