gpt4 book ai didi

swift - 如何禁止重写数据(如果存在)

转载 作者:行者123 更新时间:2023-11-30 12:30:32 25 4
gpt4 key购买 nike

授权后我在表“users”中添加用户。另外,我将向该用户添加一些我不想被覆盖的值。

ref.child("users").child((FIRAuth.auth()?.currentUser?.uid)!).setValue(["username": "MyName"])

规则

{
"rules": {
".read": "auth != null",
".write": "auth != null",
"users": {
".write": "!root.child('users/'+auth.uid).exists()",
".read":true,
"positive": {
".read": true,
".write":false,
},
"negative": {
".read": true,
".write":false,
},
}
}
}

删除旧数据并放入新数据。

我想在服务器端编写规则,如果设置值已经存在,它将忽略它。

最佳答案

如果您调用updateChildValues(),您指定的属性将被更新:

ref.child("users")
.child((FIRAuth.auth()?.currentUser?.uid)!)
.updateChildValues(["username": "MyName"])

请参阅Firebase documentation on updating specific fields .

您的规则将不起作用,因为您无法取消在树中更高级别上授予的权限。请参阅Firebase documentation on the cascading of permissions .

要确保用户始终具有某些属性,请在用户的节点上使用规则:

"users": {
"$uid": {
".write": "newData.hasChildren(['certain', 'properties])",

关于swift - 如何禁止重写数据(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43609945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com