我想允许只对其uid位于节点名称中的用户进行读访问。
我在Firebase中有以下规则:
<employee Name="John" Surname="Doe" DateOfBirth="1980-01-31">
<department DepartmentID="100">
<security>5</security>
</department>
</employee>
<employee Name="Mary" Surname="Rose" DateOfBirth="1971-02-27">
<department DepartmentID="102">
<security>3</security>
</department>
</employee>
<employee Name="Luke" Surname="Perry" DateOfBirth="1995-12-01">
<department DepartmentID="104">
<security>1</security>
</department>
</employee>
但是,这似乎不起作用。例如,当{
"rules": {
"messages" : {
"$chat" :{
".read": "$chat.matches(/(auth.uid)/)"
}
}
}
}
为$chat
且user45-user99
为auth.uid
或仅user45-user99
时,它就会失败。
我做错了什么?
答案 0 :(得分:1)
在我看来,因为你不能在Firebase RegEx中使用变量,因为它将它们视为字符串。
这是我最终做的事情:
$chats.contains(auth.uid)