基于时间戳的desc顺序的Firebase查询

时间:2017-07-06 16:59:34

标签: javascript firebase react-native firebase-realtime-database nosql

我无法以反序原生的方式从firebase和javascript以desc顺序返回一个对象数组。我本质上是“加入”两个firebase父母,然后将他们推入阵列。

async loadChats(userId){

 this.chatIdRef = firebase.database().ref("members");
 this.chatIdRef.off();
 this.chatsRef = firebase.database().ref("chats");
 this.chatsRef.off();

 items = [];
 this.chatIdRef.child(userId).on('child_added', snap => {
 this.chatsRef.child(snap.key).startAt().on('value', snapshot => {

    items.push({
      receiverId: snap.val().userId,
      timeStamp: snapshot.val().createdAt,
      name: snap.val().userName,
      key: snapshot.key
    });

  this.setState({
    dataSource: this.state.dataSource.cloneWithRows(items)
  });

  });
 });
}

我在我的查询中尝试过使用“orderByChild('createdAt')”,但没有运气。

1 个答案:

答案 0 :(得分:0)

在Firebase文档中,orderByChild的查询按以下顺序返回列表: -

  

指定子键值为null的子项首先出现。

     

接下来是指定子键值为false的子节点。如果多个子项的值为false,则按键按字典顺序排序。

     

接下来是指定子键值为true的子节点。如果多个子项的值为true,则按键按字典顺序排序。

     

接下来是具有数值的儿童,按升序排序。如果多个子节点具有指定子节点的相同数值,则按键对它们进行排序。

     

字符串在数字之后出现,并按字典顺序按升序排序。如果多个子节点具有指定子节点的相同值,则按键按字典顺序排序。

     

对象排在最后,按字典顺序按键按升序排序。

因此,请注意,当您的数据具有数值时,它会以升序顺序返回。现在您已了解数据的检索顺序,您只需对客户端应用程序进行更改即可反向显示数据(按降序排列)。也许反转你的名单或类似的东西?