![](/img/trans.png)
[英]For Android, is there a way to determine how many text messages have been sent to a contact?
[英]Check how many messages have been sent
我正在制作一個信使應用程序,我正在使用 firebase 作為我的數據庫,並且我正在使用 MVVM 模式。
我想檢查用戶是否有新的未讀消息並顯示發送者附近的消息數量。
所以在 MainActivity 中有一個充滿用戶的 recyclerView。 這是用戶型號( https://ibb.co/w72K17m )。
我有一個“seen”鍵,這意味着用戶還沒有閱讀消息,此外,我還有一個包含當前用戶 UID 的“reciever”。 使用這些值,我嘗試執行以下操作:
chatRef.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
val messageArray = ArrayList<String?>()
val usersArray = ArrayList<String?>()
for (snapshot2 in snapshot.children) {
val chat = snapshot2.getValue(Message::class.java) // Getting all the messages with values, like the photo.
if (chat!!.receiver.equals(currentUser.value!!.uid)) { // Check if the current user is the reciever
if (chat.seen == false){ // Check if the message is seen
messageArray.add(chat.message)
usersArray.add(chat.sender)
}
}
}
Log.e("Chat","messageArray: $messageArray")
Log.e("Chat","usersArray: $usersArray")
}
override fun onCancelled(error: DatabaseError) {
TODO("Not yet implemented")
}
})
這是 output:
messageArray: [message1, message2 , message3, message4, message5 , message6]
usersArray: [4RDojKDSJZUOfpNky9MxuLHQJN63, 4RDojKDSJZUOfpNky9MxuLHQJN63, iromTJzrZCQVJnjcLhhdUjXi5bP2, iromTJzrZCQVJnjcLhhdUjXi5bP2, iromTJzrZCQVJnjcLhhdUjXi5bP2, iromTJzrZCQVJnjcLhhdUjXi5bP2]
我收到了所有消息和所有發送給我的用戶,但我不知道如何檢查每個 ID 發送了多少條消息。
我嘗試使用 hashMap 但沒有成功..
謝謝並祝福大家!
畢竟我使用了 HashMap,這就是我所做的:
fun searchNumberOfMessages(user: User){
val hasMap = HashMap<String, Any?>()
hasMap.clear()
hashMapArray.clear()
if (newMessages.value != null){
(newMessages.value as ArrayList<HashMap<String, Any?>>).clear()
}
chatRef.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
val messageArray = ArrayList<String?>()
for (snapshot2 in snapshot.children) {
val chat = snapshot2.getValue(Message::class.java)
if (chat!!.receiver.equals(currentUser!!.uid) && chat.sender.equals(
user.uid)) {
if (chat.seen == false){
messageArray.add(chat.message)
}
}
}
hasMap["Sender"] = user
hasMap["Messages"] = messageArray.size
hashMapArray.add(hasMap)
newMessages.value = hashMapArray
}
override fun onCancelled(error: DatabaseError) {
TODO("Not yet implemented")
}
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.