【问题标题】:Firebase order by date Desc using Ionic Infinite scrollFirebase 使用 Ionic Infinite 滚动按日期排序
【发布时间】:2018-10-12 20:49:07
【问题描述】:

我想按日期 desc 订购一个 cmets 列表(使用离子无限滚动),但它不起作用,排序不好:

我尝试了什么:

  // How I push a new comment
  const ref=firebase.database().ref('/comment/'+imageId+'/').push();
  ref.set({
    created_at: firebase.database.ServerValue.TIMESTAMP
    ...
  })

按日期 Desc 检索和排序:

ngOnInit():

  limit: number = 10;
  var items = [];
  this.listComments = db.ref('comment/'+this.imageId).orderByChild("created_at");

  this.listComments.limitToLast(this.limit).on('value', itemList => {
     itemList.forEach(function(data) {
        const user_id=data.val().user_id;
        db.ref('users/' + user_id).on('value',function(snap) {
             items.push({'displayName':snap.val().displayName,'created_at':data.val().created_at});
             return false;
         });
     });
  })
  this.commentArray=items;
 }

onInfiniteScroll(event):

let items = [];

this.limit += 2;
//same as before
this.listComments.limitToLast(this.limit).on('value', itemList => {
     itemList.forEach(function(data) {
        const user_id=data.val().user_id;
        db.ref('users/' + user_id).on('value',function(snap) {
             items.push({'displayName':snap.val().displayName,'created_at':data.val().created_at});
             return false;
         });
     });
  })

  setTimeout(() => {
     this.commentArray=items;
     event.complete();
   }, 500);

结果:

有什么想法吗?

【问题讨论】:

    标签: javascript firebase ionic-framework firebase-realtime-database ionic2


    【解决方案1】:

    orderByChild 按升序排列 (docs)。您可以为降序创建一个单独的键 created_at * -1。这意味着旧的时间戳大于新的时间戳。所以可能是这样的:

    const ref = firebase.database().ref('comment').child(imageId).push();
    ref.set({
      created_at: firebase.database.ServerValue.TIMESTAMP
    })
    .then(() => {
      return ref.child('created_at').once('value')
      .then((ss) => {
        return ref.child('created_at_desc').set(ss.val() * -1)
      })
    })
    

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 2019-07-25
      • 2021-12-03
      • 1970-01-01
      相关资源
      最近更新 更多