gpt4 book ai didi

firebase - 订购数据实际上并没有订购任何东西

转载 作者:IT王子 更新时间:2023-10-29 07:14:09 26 4
gpt4 key购买 nike

我正在尝试从我的 firebase 数据库中获取消息数据集,并希望消息按添加/时间戳排序。但由于某种原因,我在代码中放入的 orderby 并没有被实际使用。我尝试做这两件事。

_messagesRef = FirebaseDatabase.instance.reference().child('messages/'+key);
_membersSubscription = _messagesRef
.orderByChild('timestamp')
.onValue//On valuechange
.listen((Event event) => _messagesSubscriptionCallback(event));

_messagesRef = FirebaseDatabase.instance.reference().child('messages/'+key);
_membersSubscription = _messagesRef
.orderByKey()
.onValue//On valuechange
.listen((Event event) => _messagesSubscriptionCallback(event));

两者都返回相同的数据集,该数据集未按回调中的时间戳或键排序。我在下面添加了输出

{  
-LA-Aw6crEAV53LxdujP:{
sender:1508,
message:test s9 2,
timestamp:1523642778089
},
-LA-Arby61T1UG5URMn6:{
sender:1508,
message:test s9,
timestamp:1523642759679
},
-LA-AyC7F8KAqceZBE3j:{
sender:1509,
message:test emu 1,
timestamp:1523642786632
},
-LA22WiUfL2tbh7-OjtM:{
sender:1508,
message:Blaj,
timestamp:1523690904480
},
-LA-B29RRXbdOPT1mG7m:{
sender:1508,
message:tesy3,
timestamp:1523642806940
}
}

数据应该是这样的。

enter image description here

我希望有人能帮我解决这个问题。我想我可能误解了排序数据如何与 Firebase 一起使用

亲切的问候,纳曼尼克斯

最佳答案

您显示的结果是一个 JSON 对象,其中包含其他对象。据我所知,JSON 对象从未被排序,只能通过键检索。 JSON 数组应该是,但它看起来不像你明白的那样。当您将其更改为数组时,文档 ID 必须在文档内部而不是对象键。我的猜测是,'orderBy' 用于限制您获得的用于分页的项目数量。您可以按时间戳排序,将项目数量限制为 20,并从您获得的最后一个时间戳开始搜索。

我想如果你想订购它们,我会把它们放在一个新的可以订购的对象列表中。

关于firebase - 订购数据实际上并没有订购任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com