如何向Firebase实时数据库添加新规则,以便用户可以读取recid
等于用户ID的数据?
我有一个这种结构的按摩床:
"messages" : {
"-KyyjeMOtc7fWAsOiuiP" : {
"recid" : "FL5hyQJrsHWRQsRtiLe1PxkyRnk1",
"senderid" : "6K6pQHaCishDlCb0Y9AaN3zI22n1",
"text" : "hi"
},
"-KyykczCNpsSL6a1t8vt" : {
"recid" : "FL5hyQJrsHWRQsRtiLe1PxkyRnk1",
"senderid" : "6K6pQHaCishDlCb0Y9AaN3zI22n1",
"text" : "test"
},
}
我想要一条规则,当数据添加到数据库时,只有uid
等于recid
的用户才能看到数据。
答案 0 :(得分:2)
要实现此目的,您可以为数据库创建user-based security rules,类似于:
{
"rules": {
"messages": {
"$messageId": {
".read": "auth.uid == data.child('recid').val()",
".write": "auth !== null"
}
}
}
}
在此示例中,$messageId
使用的$location
variable将匹配messages
列表下的任意键。然后,仅当current user's auth.uid
与recid
子值匹配时,我们才会授予读取权限。