gpt4 book ai didi

ios - Firebase 嵌套规则

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:31 25 4
gpt4 key购买 nike

我想编写一个规则,当且仅当嵌套子项的 userId 与 auth uID 相同时,才允许用户读取

我的数据库结构如下

"Chats":{
"-KDKndo4sg47f7s9":{
"-KDlmsn4hj4h4jk2n":{
"fromId" : "uid1234n5g3h34g5g5h33j33g4g43h3h3"
"text" : "Hi, Can you please help me on this?"
"toId" : "uid234553sdfj3n4hjjh3jk3h3jk4k4nm3m3"
}
}
}

在这个数据库结构中,-KDKndo4sg47f7s9是groupId/group key,-KDlmsn4hj4h4jk2n是messageId/message key。这是我的规则

"Chats":{
"$groupId":{
".read": "data.child('$messageId').child('fromId').val() === auth.uid" ,
".write":"newData.child('$messageId').child('fromId').val() === auth.uid"
}
}

我使用位置测试了对规则的读取访问/Chats/-KDKndo4sg47f7s9 和用户 ID “uid1234n5g3h34g5g5h33j33g4g43h3h3”

读写总是被拒绝。但是如果我通过直接传递 key 来编写规则,如下所示

"Chats":{
"$dealId":{
".read": "data.child(‘-KDlmsn4hj4h4jk2n’).child('fromId').val() === auth.uid" ,
".write":"newData.child(‘-KDlmsn4hj4h4jk2n').child('fromId').val() === auth.uid",
}
}

允许读和写。简而言之,我不想让一个用户阅读另一个用户的消息。请帮我解决这个问题。提前致谢。

最佳答案

这条规则是不正确的:

"Chats":{
"$groupId":{
".read": "data.child('$messageId')"

在第三行你有一个字符串'$messageId'。您更有可能希望它是 data.child($messageId),但这会导致语法错误,因为未定义 $messageId。将 $messageId 放在引号中将消除语法错误,但现在它只是一个没有您想要的含义的文字字符串。

我最好的猜测是你的数据库结构意味着 /Chats/$groupId/$messageId,在这种情况下你的规则应该反射(reflect):

"Chats":{
"$groupId":{
"$messageId":{
".read": "data.child($messageId).child('fromId').val() === auth.uid"

使用此规则,如果您是发件人,您将能够阅读邮件。

关于ios - Firebase 嵌套规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48148545/

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