Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase规则,在初始写入后拒绝编辑,写入取决于值_Firebase_Firebase Realtime Database_Firebase Security - Fatal编程技术网

Firebase规则,在初始写入后拒绝编辑,写入取决于值

Firebase规则,在初始写入后拒绝编辑,写入取决于值,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我的实时数据库中有一个“对象” -MHHP5ZSmLKG_xeA9SLJ 0NThxhcHIPgOJGZC1MyE3Fg0NUc2 XCEI5dQxP8YxaChrF5O061eyFv32 creatorID: "7Pao7pDRaFUVWM9c234Qq44UwoE3" message: "I wish I knew, why the world is is getting craz..." messageID:

我的实时数据库中有一个“对象”

-MHHP5ZSmLKG_xeA9SLJ
    0NThxhcHIPgOJGZC1MyE3Fg0NUc2
    XCEI5dQxP8YxaChrF5O061eyFv32
    creatorID: "7Pao7pDRaFUVWM9c234Qq44UwoE3"
    message: "I wish I knew, why the world is is getting craz..."
    messageID: "-MHHP5ZSmLKG_xeA9SLJ"
    timestamp: 1600184270739
    timestampReverse: 998399815846742
两个问题

有没有一种方法可以让我在初始初始化后无法写入creatorID:

"creatorID" : {
    .write : "false"
}
这是可行的,还是会阻止初始写入?本质上,我希望它不能被编辑

是否有一种编写规则的方法,只有当auth.uid和creatorID.value相等时,才能编辑消息:

"message" : {
    .write : "auth.uid == creatorID.value"
}
致以最良好的祝愿,
Sam

如果希望
创建者ID
字段仅在创建时可写,可以执行以下操作:

"creatorID" : {
    .write : "!data.exists()"
}
如果希望
消息
字段只能由其原始作者编写,则应为:

"message" : {
    .write : "auth.uid == data.child('creatorID').val()"
}

另一个问题。如果我有一个节的一般规则,那么在该节中添加一个特定的规则。最具体的规则是否适用于总统?比如:{“规则”:{“所有问题”:{.indexOn”:“timestampReverse”,“.read”:“auth!=null”,“.write”:“auth!=null”,“creatorID”:{.write:“!data.exists()”},如果您还有其他问题,请发布其他问题。如果我的答案对您最初发布的问题有用,请单击向上投票按钮(▲) 如果它回答了您的问题,请单击复选标记(✓) 接受它。这样别人就会知道你已经得到了(足够的)帮助。也请参见