java 邮件 已读回执_java – 在Firebase群组消息传递应用中实施已读回执功能

为此,您需要在名为seenBy的Firebase数据库中添加另一个节点,该节点必须嵌套在meassage部分中的每个messageId下.您的数据库应如下所示:

Firebase-root

|

---- messages

|

---- messageId1

|

---- meessage: "Hello!"

|

---- timestamp: 1498472455940

|

---- seenBy

|

---- userUid1: John

|

---- userUid2: Mary

|

---- userUid3: George

每次新用户打开一个meesage时,只需添加uid和名称,如上所述.

要实现Seen by 6选项,这很容易.您只需要创建一个侦听器并使用如下所示的getChildrenCount()方法:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

DatabaseReference seenByRef = rootRef.child("messages").child(messageId).child("seenBy");

ValueEventListener eventListener = new ValueEventListener() {

@Override

public void onDataChange(DataSnapshot dataSnapshot) {

long seenBy = dataSnapshot.getChildrenCount();

Lod.d("TAG", "Seen by: " + seenBy);

}

@Override

public void onCancelled(DatabaseError databaseError) {}

};

seenByRef.addListenerForSingleValueEvent(eventListener);

要知道消息是否已打开,您需要在用户部分添加另一个字段,在该部分中需要添加一个默认值为false的布尔值.这个新部分应如下所示:

Firebase-root

|

---- users

|

---- userId1

|

---- meessages

|

---- messageId1: false

|

---- messageId2: false

|

---- messageId3: false

当用户打开该消息时,只需将该特定消息的值从false设置为true,这意味着已打开特定消息.这是代码:

DatabaseReference openedRef = rootRef.child("users").child(userId).child("meessages").child("messageId1");

openedRef.setValue(true);

创建消息时,在引用上使用push()方法,如下所示:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

DatabaseReference messageRef = rootRef.child("meessages").push();

String messageKey = messageRef.getKey();

拥有此密钥后,您可以在DatabaseReference中使用它.以同样的方式可以用于userId.

希望能帮助到你.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值