私は Firebase を初めて使用し、動的に作成されたグループによってユーザーをグループ化するセキュリティ ルールを設定しようとしていました。また、ユーザーが同じグループのすべてのコンテンツを読み取れるようにしたいが、他のグループは読み取れないようにしたい.
新しいユーザーを作成し、プッシュを使用していくつかのグループを割り当てると、次のようなデータが得られます。
{
"groups" : {
"default" : {
"-Jtcdyniz1yVwNQCGSAR" : {
"user" : "simplelogin:5"
},
"-Jtd114KNQ-rqh6-rlnI" : {
"user" : "simplelogin:7"
}
}
},
"users" : {
"simplelogin:5" : {
"group" : "default",
"name" : "123"
},
"simplelogin:6" : {
"group" : "default1",
"name" : "1"
},
"simplelogin:7" : {
"group" : "default",
"name" : "23"
}
}
}
誰でもここで助けることができますか?認証ルールを設定するにはどうすればよいですか? 私は次のことを試しましたが、うまくいかないようです...
{
"rules": {
"users" : {
"$userid" : {
".read" : "data.child('users').child($userid).child('group').val() === data.child('users').child(auth.id).child('group').val()",
".write" : "$userid === auth.uid"
}
}
}
}
これはかなり単純なユースケースであると思いますが、残念ながらあまり役に立ちませんでした。
私が見つけた投稿には、ランダムで一意の文字列の子ではなく、直接のユーザーがグループ内に含まれていました。
編集:
私は次のような編集されたルールで試しました:
{
"rules": {
"groups" : {
".read" : "true",
".write" : "true"
},
"users" : {
"$userid" : {
".read" : "data.child('group').val() === root.child('users').child(auth.id).child('group').val()",
".write" : "$userid === auth.uid"
}
}
}
}
しかし、私はあまり助けを得ませんでした。
コードについては、http://jsfiddle.net/digish_gabhawala/ytwmokg0/ でフィドラーとして追加しました。
現時点で私が望んでいるのは 2 つの簡単なことです: 1> ユーザーとして、自分の名前を編集できる必要があります 2> ボタンをクリックすると、グループ内のすべてのユーザーの名前を取得できる必要があります。
フィドラーのようにコードを試したところ、権限の問題が発生しています。
私が間違っていることを理解できれば素晴らしいことです。