Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按降序显示值不需要';行不通_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 按降序显示值不需要';行不通

Javascript 按降序显示值不需要';行不通,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在用Ionic和Firebase开发一个应用程序 现在,我尝试按降序显示帖子:从最新到最旧。问题是,无论我做什么操作来保存时间戳,它总是以某种方式从最早的时间戳到最新的时间戳 我试过: 按时间戳 按时间戳反转(-1*时间戳) 通过减去一个巨数(9999999999999+(-1*时间戳) 始终相同的结果 更新:以下是我检索它的方法: var myId = firebase.auth().currentUser.uid; var ref = firebase.database().

我正在用Ionic和Firebase开发一个应用程序

现在,我尝试按降序显示帖子:从最新到最旧。问题是,无论我做什么操作来保存时间戳,它总是以某种方式从最早的时间戳到最新的时间戳

我试过:

  • 按时间戳
  • 按时间戳反转(-1*时间戳)
  • 通过减去一个巨数(9999999999999+(-1*时间戳)
  • 始终相同的结果

    更新:以下是我检索它的方法:

      var myId = firebase.auth().currentUser.uid;
        var ref = firebase.database().ref('/accounts/' + myId + '/discussions/');
        ref.orderByChild("timestamp").on("value", function(snapshot1) {
          this.data = [];
          snapshot1.forEach(function(child) {
          this.data.push(child.val());
        }.bind(this));
    
          $timeout(function(){
          $scope.discussions = this.data;
    
          })
        })
    
    有什么想法吗?

    使用.reverse()方法奏效了

    最终代码:

    var myId = firebase.auth().currentUser.uid;
            var ref = firebase.database().ref('/accounts/' + myId + '/discussions/');
            ref.orderByChild("timestamp").on("value", function(snapshot1) {
              this.data = [];
              snapshot1.forEach(function(child) {
              this.data.push(child.val());
            }.bind(this));
    
              $timeout(function(){
              $scope.discussions = this.data.reverse() ;
    
              })
            })
    

    它可能是按字符串排序的。Datetime类型在排序时很棘手。有没有办法指定该类型是Datetime或时间戳?您好,尝试过它,给出了相同的精确结果。无论顺序、字符串或日期格式如何。您都需要循环快照的子项,如中所示(christo8989在前面链接了它)。如果在那之后你仍然有同样的问题,请更新你问题中的代码。您好,我刚刚更新了我的原始帖子,向您展示了如何使用此方法显示它,并且我仍然有相同的结果…我不明白…我根本看不到您将其降序到哪里。也许我只是缺少了它?是否有一个.reverse()我只是看不到的地方?