Firebase 数据库 V9 Return 最后一项

Firebase Database V9 Return last item

我有一个聊天系统,其中一个聊天包含多条消息,结构如下所示:

 - messages
   - ChatId123
      - MesageId123
      - MessageId456

我只想检索在这种情况下发送的最后一条消息 MessageId456 我想我需要使用 orderByKey()。密钥是使用 push() 生成的,我怎样才能正确查询和过滤最后一项?

const query = query(ref(db, `messages/ChatId123`), orderByKey())
return query

最简单的方法是在消息对象中添加时间戳字段,如“SendAt”和 orderBy 这个值:


const q = query(ref(db, `messages/ChatId123`), orderBy("SendAt", "desc"), limit(1));


您可以使用 limitToLast 从查询中获取最后一项:

query(ref(db, `messages/ChatId123`), orderByKey(), limitToLast(1))

有关这方面的更多信息,请参阅 filtering data 上的 Firebase 文档。