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 文档。
我有一个聊天系统,其中一个聊天包含多条消息,结构如下所示:
- 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 文档。