0
私は、ユーザーが互いにチャットできるアプリケーションを持っています。 1対1。私は、特定のユーザーリストが彼にメッセージを送信するのをブロックする機能をユーザーに与えたいと考えています。user1はuser2がuser1にメッセージを送信するのをどのようにブロックできますか。 - Firebase
コード例は高く評価されます。
私は、ユーザーが互いにチャットできるアプリケーションを持っています。 1対1。私は、特定のユーザーリストが彼にメッセージを送信するのをブロックする機能をユーザーに与えたいと考えています。user1はuser2がuser1にメッセージを送信するのをどのようにブロックできますか。 - Firebase
コード例は高く評価されます。
ユーザ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) {
}
});
なぜ、サーバー上のすべてのユーザーのブロックリストがありませんか。 –