から私はこのようなfirebaseデータベース構造を得た:質問は、私はuser2のにメッセージをチャット書くために(場合USER1で)ユーザーを防ぐないか、であるFirebaseセキュリティ防止の保存データその他ユーザー
database
- chat
-user1
-user2
-chat1
-message : a
-user2
-user1
-chat1
-message : a
-user3
-chat1
-message : a
-user3
-user2
-chat1
-message : a
からuser3までです。
例:
イムuser1のjavascriptの
firebase.database().ref("chat/user2/user3/chat2").set({
message: "HAHA"
});
コマンドは、上記の私user1のとしてメッセージでuser3にからuser2ののための新しいチャットを書くことと言っコマンドを使用して、 "HAHA"。私はfirebaseのルールでこの事件を防止したい。誰かがルールを書いて、サインインする方法を手伝ってもらえますか?
ありがとうございます。
おかげで、今の問題はのuidがfirebaseユーザーからgenereatedのuidがないことです...それは、ユーザー(ユーザー名)から文字列です..私は比較することができますユーザーの指定した文字列を持つsenderUid?私は今データベースを再構築することができないと思う.500人以上の人がそれを使っていて、それらのチャットをすべて削除することはできない。 – RaiN
特定のユーザーにデータへのアクセスを保護するには、関連付けるセキュリティルール特定のユーザーを持つノード。これは 'auth'変数によってのみ可能です。最も一般的なプロパティは 'auth.uid'です。カスタムトークンを作成しない限り、 'username'はauth変数の一部ではないので、それに基づいてアクセスを保護することはできません。 –
auth.token.nameはどうですか?それを使うことはできますか? – RaiN