Firebase realtime database Flatter Firebase数据库错误的时间戳顺序

Firebase realtime database Flatter Firebase数据库错误的时间戳顺序,firebase-realtime-database,flutter,Firebase Realtime Database,Flutter,我试图将时间戳设置到firebase实时数据库中,但在检索时,并没有按时间戳排序。 我确实喜欢这样 FirebaseDatabase.instance.reference().child('path').push().set({ 'timestamp': ServerValue.timestamp }); 这是节点 然后我就这样找回了 FirebaseDatabase.instance.reference().child('path').orderByChild('time

我试图将时间戳设置到firebase实时数据库中,但在检索时,并没有按时间戳排序。 我确实喜欢这样

FirebaseDatabase.instance.reference().child('path').push().set({
      'timestamp': ServerValue.timestamp
    });
这是节点

然后我就这样找回了

FirebaseDatabase.instance.reference().child('path').orderByChild('timestamp').once().then((snap) {
            print(snap.value);
          });
但产出是这样的

{-LJhyfmrWVDD2ZgJdfMR: {timestamp: 1534074731794}, -LJhyWVi6LddGwVye48K: {timestamp: 1534074689667}, -LJhzDlvEMunxBpRmTkI: {timestamp: 1534074875091}
这些不是按时间戳排序的。 我错过什么了吗?
否则,这是firebase错误还是颤振?

数据将以正确的顺序检索到DataSnapshot中。但是,当您调用snap.value时,快照中的信息必须转换为映射,该映射不再能够保存有关子节点顺序的信息

要保持顺序,必须使用循环处理DataSnapshot中的子节点。我根本不是颤振方面的专家,但我无法很快找到一种方法为价值事件做到这一点。因此,您可能希望改为倾听。childAdded:


数据按正确的顺序检索到DataSnapshot中。但是,当您调用snap.value时,快照中的信息必须转换为映射,该映射不再能够保存有关子节点顺序的信息

要保持顺序,必须使用循环处理DataSnapshot中的子节点。我根本不是颤振方面的专家,但我无法很快找到一种方法为价值事件做到这一点。因此,您可能希望改为倾听。childAdded:


很抱歉迟了答复。它工作得很好!如果我使用DateTime.now.millissecondssinceepoch,它也可以工作吗?类型为int,但文档显示自1970年以来的毫秒数。所以我想它是有效的,但我只是想确定一下。@daibakudi你找到解决办法了吗?很抱歉回复太晚了。它工作得很好!如果我使用DateTime.now.millissecondssinceepoch,它也可以工作吗?类型为int,但文档显示自1970年以来的毫秒数。所以我想它是有效的,但我只是想确定一下。@daibakudi你找到解决办法了吗?
   FirebaseDatabase.instance
        .reference()
        .child('path')
        .orderByChild('timestamp')
        .onChildAdded
        .listen((Event event) {
      print(event.snapshot.value);
    })