【发布时间】:2020-12-03 12:53:51
【问题描述】:
我正在使用 firebase 实时数据库来存储聊天消息架构如下所示
"chat_message" : {
"up-29709425-fef2-490c-8335-77dbeafbce1e" : {
"-MLhPH_i7bfvnTpccK1k" : {
"chat_room_id" : "up-29709425-fef2-490c-8335-77dbeafbce1e",
"created_at" : "2020-11-09T19:59:11+05:30",
"creator_id" : 15456623,
"message" : "hii",
"message_type" : "text",
"time_in_ms" : 1604932151865
}
},
"up-299bcd2f-90bb-4ca2-b526-7e858d2d98fe" : {
"-MLhWydTKmB52W_XFtS6" : {
"chat_room_id" : "up-299bcd2f-90bb-4ca2-b526-7e858d2d98fe",
"created_at" : "2020-11-09T20:32:47+05:30",
"creator_id" : 15451746,
"message" : "hoi",
"message_type" : "text",
"time_in_ms" : 1604934167159
}
}
问题是第一次,我得到 10 个项目,之后,我无法得到接下来的 10 个项目。这是我正在使用的查询
private var query: Query? = null
private fun getInitialChatMessages(time: String?, key: String?) {
query = if (time == null) {
// For first time I am getting last 10 items
getFirebaseDbReference()
.child(FIREBASE_DATABASE_LOCATION_MESSAGES)
.child(project?.userProjectId!!)
.orderByChild("time_in_ms")
.limitToLast(INITIAL_FETCH_MESSAGE_COUNT)
} else {
// on scroll its not working
getFirebaseDbReference()
.child(FIREBASE_DATABASE_LOCATION_MESSAGES)
.child(project?.userProjectId!!)
.orderByChild("time_in_ms")
.endAt("$time")
.limitToLast(INITIAL_FETCH_MESSAGE_COUNT)
}
query?.addListenerForSingleValueEvent(listener)
}
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: android firebase kotlin firebase-realtime-database