首页 > 解决方案 > React Firebase 根据时间戳值获取最新记录

问题描述

我正在使用 ReactJS 和 Firebase 开发基于 Web 的实时聊天应用程序,为此我的 Firebase DB 结构是:

在每个消息节点上,我都有一个timestamp值,我想通过对该timestamp值进行排序来仅获取 5 或 10 条记录(就像我们在 RDBMS 中所做的那样 - OrderBy 和 Limit )。

为此,我尝试过:

messageRef.orderByKey().on("child_added", function(snapshot) {
    console.log(snapshot.key);
});

messageRef.orderByChild("created_at").on("child_added", snap => {
   console.log(snap.val());
});

但并没有只得到消息节点,而是他们返回那里的父节点。因此,请让我知道是否有任何方法可以直接获取这些记录,而无需通过每个节点。

提前致谢。

标签: reactjsfirebasefirebase-realtime-database

解决方案


messageRef获取整个数据库中的所有节点,这也是您获取父节点的原因。

如果您只想获取按时间戳过滤的最新消息,请尝试以下操作:

var messageRef = firebase.database().ref('chatroom_indiv..../').orderByChild('created_at').limitToLast(10);

类似的东西对你有用吗?


推荐阅读