如何根据添加时间在Firestore中检索有限文档(对于聊天应用程序)?

时间:2018-07-19 17:22:35

标签: firebase google-cloud-firestore

基本上,我想使消息与通常的聊天应用程序中的消息对齐。

更新:现在,消息在recyclerview中已正确对齐。但是,每当我发送新消息时,它将它们置于其他消息的顶部。每当我回头再来一次,活动消息都会被正确安排(甚至是最上面的消息)。

我只希望我发送的消息显示在底部。任何帮助将不胜感激。

class DummyView : View("Dummy View") {
    override val root = vbox {
        lateinit var statusLabel: Label

        val task = object : Task<Void>() {
            public override fun call(): Void? {
                Platform.runLater { statusLabel.textProperty().bind(messageProperty()) } // label coupling

                updateMessage("Initializing task...")
                (1..3).forEach {
                    Thread.sleep(1000)
                    updateMessage("Doing task: $it...")
                }

                Thread.sleep(1000)
                updateMessage("Task done")
                Thread.sleep(1000)
                return null
            }
        }

        button("Do task") {
            action {
                Thread(task).apply {// task coupling
                    isDaemon = true
                }.start()
            }
        }
        statusLabel = label("Status") {
            visibleWhen(task.runningProperty()) // task coupling
        }
    }
}

class DummyApp : App(DummyView::class)

然后:

Product/Service: [2,3,3] <---- id's of existing products  
Line Description: ['Eggs','Bacon','Sausage']  
Line Amount: [3,4,4]

2 个答案:

答案 0 :(得分:0)

您应该继续按当前方式检索信息,然后在客户端反转订单,这不是一项昂贵的任务,并且尚未实现在Firestore中尝试做您想做的事情。

检索列表后,您可以执行以下操作:

 Collections.reverse(messageList.clone());

答案 1 :(得分:0)

Here是相同的情况,它也有答案。因此,以防万一有人在寻找答案。

This是firestore聊天应用程序功能的github存储库。