2017-12-21 23 views
-1

チャットに参加するための正しいパスワードを入力する方法を確認する方法。Firebase - パスワードで安全にチャットに参加する

このアプローチは、適切には完全に不適切です。このコードは、私が達成したいことを示していますが、まったく動作していません。

val ref = FirebaseDatabase.getInstance().getReference("chats") 

ref.child(chatName).child("password").equalTo(password).addListenerForSingleValueEvent( 
    override fun onDataChange(snapshot: DataSnapshot) { 
     Log.d(TAG, snapshot.toString()) 
     // if there is data the password was right 
    } 
    .... 
) 

パスワードシステムとのこのチャット全体のチャットは、どのようにして安全に行うことができますか?どのようなルールをデータベースに設定する必要がありますか。

根拠のある電話でファイヤーベースのクエリを変更し、クライアントとサーバーの間で転送されるデータを確認できますか?

答えて

1

チャットルームをパスワードで保護するには、そのパスワードをチャットルームのパスに埋め込む方法があります。だから、例えば:

chats: { 
    roomId1: { 
    secret: { 
     chat11: ... 
     chat12: ... 
    } 
    } 
    roomId2: { 
    correcthorsebatterystaple: { 
     chat21: ... 
     chat22: ... 
    } 
    } 

は以下のルールで、この構造を固定します。この構造により

{ 
    "rules": { 
    ".read": false, 
    "chats": { 
     "$roomId": { 
     "$password: { 
      ".read": true 
     } 
     } 
    } 
    } 
} 

を、誰も部屋のリスト、あるいは特定の部屋を読むことはできません。それらを読むことができるようにするにはを知っていなければなりません部屋のIDとその部屋のパスワード。

+0

パスワードはどのように変更できますか? – Metu

+0

このモデルでは、パスワードを変更する場合はすべてのメッセージを移動する必要があります。ブランチの名前を変更する/移動する操作はないので、コピーする必要があります。 https://stackoverflow.com/questions/39107274/is-it-possible-to-rename-a-key-in-the-firebase-realtime-database –

+0

を参照してください。私はまだこれを行う別の方法を探しています。しかし、ありがとう。 – Metu

関連する問題