我是Firebase的新手,我想按时间戳对数据进行排序,而我的数据库在下面,这里的关键是时间戳
我的数据检索代码如下
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("MainDoor");
Query dataOrderedByKey = myRef.orderByChild("{pushId}/key");
dataOrderedByKey.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, MyListData> value = ((HashMap<String, MyListData>) dataSnapshot.getValue());
在这里我获得价值不是按关键顺序
我正在获取如下所示的未按排序顺序排列的数据
Map
根据定义,a中的数据未排序。因此,当你调用时dataSnapshot.getValue()
,有关DataSnapshot
列表中项目顺序的所有信息。
要保持顺序,请使用支持该顺序的数据结构(例如列表),并通过循环遍历以正确的顺序提取各个项目DataSnapshot.getChildren()
。
所以像这样:
dataOrderedByKey.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
System.out.println(snapshot.getKey());
MyListData value = snapshot.getValue()
}
}
...
非常感谢@Frank van Puffelen,它正在工作
哦..谢谢您的指导,我尝试首先对您的回答进行投票,但这表明我需要超过15个声誉,但是无论如何,非常感谢您的支持,您节省了我很多钱,因为时间就是金钱而且您节省了我的时间。