私はドキュメント(https://firebase.google.com/docs/database/security/quickstart#sample-rules)からこれらのセキュリティルールをしようとしています:Firebaseセキュリティルールプライベート・ユーザデータ
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
ノー・ワン他のユーザーは、ユーザーの下に自分のノードへの読み書きができるようにしたいと彼らの情報にアクセスすることができます。
私のデータ構造は次のとおりです。 ユーザの下では、私のユーザの情報はFacebook UIDの下に保存されます。 「ユーザー/」+ facebookUID
しかし、私は、コードは何もリターンを実行すると:私はノードを照会すると、それが動作するシミュレータで
var userinformation = firebase.database().ref("users/" + <facebookUID>).on("value",function(snapshot) {
//...do stuff here
});
:私はしてデータベースを照会し、私のコードで
myfirebase
users
-<facebookUID>
->user info stored here
-<facebookUID>
->user info stored here
-<facebookUID>
->user info stored here
。
私はセキュリティルールとは何かを推測していますが、フィルタや何かをすることはできません....アクセスするルールがないため、ノードへのアクセスはfalseを返し、アクセスは許可されません。しかし、カスケードのためにユーザーにアクセスできるようにすると、誰でも他のユーザーのデータにアクセスできます。
どうすればこの問題を解決できますか?
私は他の質問を見てみましたが、うまくできません。
UPDATE - いくつかの写真は
あなたが照会している場所がうまくいるようです。あなたはデータをフィルタリングしようとしているわけではないので、あなたが言及している "ルールはフィルタではありません"ということになります。しかし、「」はどこから来たのですか?リスナーをアタッチしたときに初期化されていますか? –
ご協力ありがとうございます。リスナーは.onコールを意味しますか?これはうまくいくはずです。なぜなら、.readと.writeがルートでtrueに設定されていると、コードは正常に動作し、アクセス権があるからです。 悪い投稿を追加する –
@FrankvanPuffelenこのhttps://github.com/rhroyston/firebase-authをフォークして、.jsファイルの下部に「管理者承認」メソッドを追加すると本当に私を助けてくれるだろう、と私は他人を考えますか?)あなたは男です。 ...これは私があなたに連絡するために知っている唯一の方法です。あなたが気にしないことを願っています。 approveUser(uid、 'gold')/ approveUser(uid、 'bronze')のようなものです。複数レベルの管理者ですか? –