これはfirebaseで行うことができます。あなたのDBの
と仮定部分が同じようにレイアウトされています/chatRooms/$roomID/password
へ
/chatRooms/$roomID/password = $PASSWORD
読み取り/書き込み許可がチャットルームの所有者に付与されます。次の検証と chatRooms/$roomId/users/$userId
::あなたがにドキュメントを追加する必要があり、チャットルームのメンバーになる
エントリのuseridは、現在のユーザーでなければならない、とパスワードフィールドは、パスワードと同じでなければなりません。検証ルールは、ユーザーがデータにアクセスできない場合でも、データベース内のすべてのデータにアクセスできます。
以下は、基本的な原則を示す(テストされていない)例です。要するに
:
- のみチャットルームの管理者は、パスワードを設定することができます。誰もそれを読むことはできません。
- チャットデータは、そのuidがコレクションにメンバーを追加するメンバーのコレクション
- であれば、彼らは(時)に等しいパスワードを記述する必要があり、ユーザーが読み取ることができる部屋のパスワード
コード:
出典
2017-12-12 03:24:18
z5h
妥当な解決策のようです。 "エントリのuserIdは現在のユーザーでなければならず、パスワードフィールドはパスワードと同じでなければなりません。ユーザーがデータにアクセスできない場合でも、検証ルールはデータベース内のすべてのデータにアクセスできます。 " ユーザーにパスワードを書く必要がありますか? chatRooms/$ roomId/users/$ userId 私はfirebaseルールを初めて使いました。 –
>であり、パスワードフィールドはパスワードと同じでなければなりません。 パスワードフィールドはどのパスワードと同じでなければなりませんか?実際にデータベースに書き込むことなく、どのように提供しますか? –
@DaniilAndreyevichBaunovドキュメントはここで説明します。 https://firebase.google.com/docs/database/security/あなたがそれらを読んでいると分かります。ユーザは '/ users'コレクションに自分自身を書くようにATTEMPTする必要があります。成功した場合は、パスワードを知っている必要があります。 – z5h