gpt4 book ai didi

java - 第一次调用后如何在 ChildEventListener 中传递 onChildAdded 条件?

转载 作者:太空宇宙 更新时间:2023-11-03 10:57:00 26 4
gpt4 key购买 nike

我将 firebase ChildEventListner 用于聊天应用程序。在这个应用程序中,我在 onChildAdded 中传递条件,即如果消息 senderId 添加的新 child 比在 Activity 中播放声音。下面是我的代码。

rootRef.child("Messages").child(MessageSenderId).child(MessageReceiverId).addChildEventListener(new ChildEventListener()
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
{
Messages messages=dataSnapshot.getValue(Messages.class);
messageslist.add(messages);
messagesAdapter.notifyDataSetChanged();
messageList.smoothScrollToPosition(messageList.getAdapter().getItemCount());

if (messages.from.equals(MessageSenderId))
{
MediaPlayer IncomingMessageSound=MediaPlayer.create(MessageActivity.this,R.raw.incoming_message_sound);
IncomingMessageSound.start();
}
}

但这就像工作一样,当我转到消息 Activity 时,声音播放总数为 no。由 senderId 时间添加的 child 。这意味着,如果消息收到 15 次,则声音在 Activity 开始时播放 15 次。之后就没有声音了。

所以我的问题是当 senderId 添加的新节点比播放声音意味着在接收消息时播放声音(不是通知声音)时如何通过适当的条件

最佳答案

这基本上归结为了解用户是否已经看到特定消息。或者更准确地说:如果用户还没有看到任何消息,因为您可能只想播放一种声音,即使有多个新消息也是如此。

另见 answer I gave in an #AskFirebase video ,以及之前的答案:Android Firebase New Message Query .

关于java - 第一次调用后如何在 ChildEventListener 中传递 onChildAdded 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57224739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com