gpt4 book ai didi

Firebase 安全和规则,如何让用户删除自己的数据?

转载 作者:行者123 更新时间:2023-12-02 21:39:25 27 4
gpt4 key购买 nike

我在 Firebase 中的数据如下所示,在我的网络应用程序中,访问它的每个人都会通过 Firebase 进行匿名身份验证,并且他们的 UID 与用户创建的每个帖子一起存储:

  "-KF5N2V_dKD1dMHebUqc" : {
"note" : "Hello everybody",
"pos" : {
"lat" : 40.3628851,
"lng" : -74.0493175
},
"time" : 1460395853884,
"uid" : "f8cf7863-5607-4e2b-97d7-6a121261466c"
},
"-KHwyP-tnWNOA3nxzEm4" : {
"note" : "hi",
"pos" : {
"lat" : 37.0947156,
"lng" : -121.0179501
},
"time" : 1463459362615,
"uid" : "f8cf7863-5607-4e2b-97d7-6a121261466c"
}

我希望设置我的 Firebase 规则,以便只有匿名用户才能通过自己的帖子删除自己的帖子。

到目前为止,我只是在阅读了 firebase 文档后才想到这一点:

{
"rules": {
".read": "auth != null",
".write": "auth != null",
"$msg": {
".validate": "newData.hasChildren(['note','time','uid','pos'])
&& newData.child('note').isString() && newData.child('time').isNumber()
&& newData.child('uid').isString() && newData.child('note').isString()
&& newData.child('pos/lat').isNumber() && newData.child('pos/lng').isNumber()"
}
}
}

最佳答案

您需要将 .write 权限下移并将其与数据绑定(bind):

{
"rules": {
".read": "auth != null",
"$msg": {
".write": "!data.exists() || (!newData.exists() && data.child('uid').val() === auth.uid)"
".validate": "..."
}
}
}

这是 Firebase 文档这两部分的混合搭配:

关于Firebase 安全和规则,如何让用户删除自己的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267512/

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