聊天应用中的Firebase RealtimeDatabase无法按时间检索消息

时间:2019-04-20 11:12:36

标签: java android firebase firebase-realtime-database

a photo 当我从Firebase检索聊天消息时,它是在没有发送时间消息的情况下检索它们

我尝试了orderbychild(timestamp); 但这不适用于我的情况

util

实际结果是检索邮件时不看时间 我需要的是按日期和时间检索消息,但是firebase会做另一件事

2 个答案:

答案 0 :(得分:0)

您可能想使用FCM代替实时数据库。

onChildAdded会在用户发送消息时在每台设备上触发,这是一个安全问题,确实对性能不利,假设您每秒发送1k消息,这将使您的应用程序非常非常慢。

我的建议是将每个用户的Firebase ID保存在数据库中,然后使用该ID向该特定用户发送通知,以查看FCM来接收消息。

要发送消息,我的建议是使用登录令牌来使服务器上的用户生效,您可以从服务器查询Firebase来发送消息。 link,您也可以使用Firebase Functions,只需将api_key放在安全的地方

答案 1 :(得分:0)

好的,我认为所有消息都将在最晚之前进行排序,所以我认为问题出在RecyclerView中,我也认为RecyclerView中的解决方案也是如此。

在将所有消息提取到RecyclerView之后,应放置以下行:

mRecy.smoothScrollToPosition(mRecy.getAdapter().getItemCount());

希望它对您有帮助:)