我用firebase做了一个聊天应用程序。最近我遇到了数据库的一些问题。在群聊中,我使用.push()
firebase方法逐个添加消息。但从某些日子来看,它表现得很奇怪。就像发送消息后一样,它最后会显示出来。但经过几秒钟后,它又回到了500+级别。我不知道问题出在哪里。
我没有在规则中使用任何索引,
"groupchat":{
"$chatid":{
"chat":{
".read" : "root.child('groupmembers').child($chatid).child('members').child(root.child('users').child(auth.uid).child('username').val()).exists()",
".write" : "root.child('groupmembers').child($chatid).child('members').child(root.child('users').child(auth.uid).child('username').val()).exists()",
}
}
}
不知道我是否因此而未能解决此问题
此外,我的消息结构如下所示
Android代码添加消息,
Map<String, Object> map = new HashMap<String, Object>();
map.put("username", Fusername);
map.put("message", message);
map.put("timestamp", ServerValue.TIMESTAMP);
map.put("type", "text");
map.put("zread", false);
chatRef.child("chat").child(chat_key).updateChildren(map);
每次都没有出现这个问题。此外,有时当用户发送消息时,由于其按下的键而保持在最高位置,该消息在旧消息之前停留时发送。
当消息较少时,一切正常。但现在它表现得如此奇怪。我需要帮助......谢谢