2017-09-22 1 views
0

私は、ユーザーが互いにチャットできるアプリケーションを持っています。 1対1。私は、特定のユーザーリストが彼にメッセージを送信するのをブロックする機能をユーザーに与えたいと考えています。user1はuser2がuser1にメッセージを送信するのをどのようにブロックできますか。 - Firebase

コード例は高く評価されます。

+0

なぜ、サーバー上のすべてのユーザーのブロックリストがありませんか。 –

答えて

2

ユーザ1がユーザ2にメッセージを送信しようとしていると仮定します。 以下のスニペットを使用して、メッセージを送信する前に実行することができます。

firebaseデータベースにデータベース内のすべてのユーザを含むusersノードがあるとします。

論理:ユーザー1がユーザー2にメッセージを送信しようとしています。ユーザー1がユーザー2のブロックリストに存在する場合は、送信を許可しないでください。

FirebaseDatabase database = FirebaseDatabase.getInstance(); 
    database.getReference() 
      .child("users") 
      .child("id_of_user2") 
      .child("block-list") // fetching block-list of user2 
      .addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        List<String> blockList = dataSnapshot.getValue(List.class); 
        if (blockList.contains(id_of_user1)){ 
         // block list of user2 contains id of user1, 
         // DO NOT ALLOW TO SEND MESSAGE 
        } 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 
関連する問題