gpt4 book ai didi

android - 设备离线时不发送显示消息,设备上线时发送显示消息 firebase firestore

转载 作者:行者123 更新时间:2023-12-02 13:26:57 25 4
gpt4 key购买 nike

该应用程序用于消息传递,使用 Firebase Firestore
我想通知用户是否将消息发送到服务器。
为此,我向消息实体添加了“sent (Boolean)”属性,当我将消息作为 (sent = false) 发送时它可以正常工作

val messageToSend = TextMessage(editText_message.text.toString(), Calendar.getInstance().time,
FirebaseAuth.getInstance().currentUser!!.uid,
otherUserId, currentUser.name, false, null, false)
editText_message.setText("")
sendMessage(messageToSend, channelId)


fun sendMessage(message: TextMessage, channelId: String) {

FirebaseConstants.chatChannelsCollectionRef.document(channelId)
.collection("messages")
.add(message).addOnSuccessListener {
it.update(mapOf("sent" to true))
}
}
我在我的 View 持有者中控制它
  if (!message.sent) {
viewHolder.text_message_status_indicator.background = ContextCompat.getDrawable(context, R.drawable.ic_baseline_access_time_24)
}
问题是当设备再次在线时,消息属性未更新(包括已发送 = true)
请帮我解决这个问题

最佳答案

要检测消息是来自本地缓存还是来自服务器上的数据库,最好使用 DocumentSnapshot.getMetadata().hasPendingWrites() .如果此属性是 true ,数据尚未写入服务器。如果是false ,数据已经提交到服务器。
有关此示例,请参阅 events for local changes 上的 Firestore 文档。 .

关于android - 设备离线时不发送显示消息,设备上线时发送显示消息 firebase firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63329604/

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