Javascript 基于时间戳的描述顺序Firebase查询
我在使用react native从firebase和javascript返回desc顺序的对象数组时遇到问题。我基本上是“加入”两个firebase父母,然后将他们推到一个阵列中Javascript 基于时间戳的描述顺序Firebase查询,javascript,firebase,react-native,firebase-realtime-database,nosql,Javascript,Firebase,React Native,Firebase Realtime Database,Nosql,我在使用react native从firebase和javascript返回desc顺序的对象数组时遇到问题。我基本上是“加入”两个firebase父母,然后将他们推到一个阵列中 async loadChats(userId){ this.chatIdRef = firebase.database().ref("members"); this.chatIdRef.off(); this.chatsRef = firebase.database().ref("chats"); this.
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'),但没有成功。从Firebase文档中,使用
orderByChild
返回列表进行查询,顺序如下:-
对于指定的子键,具有空值的子项首先出现
接下来是指定子键的值为false的子项。如果多个子项的值为false,则会按关键字按字典顺序对它们进行排序
接下来是指定子键的值为true的子项。如果多个子项的值为true,则会按关键字按字典顺序对它们进行排序
接下来是具有数值的子项,按升序排序。如果指定子节点的多个子节点具有相同的数值,则它们将按键排序
字符串位于数字之后,按升序按字典顺序排序。如果指定子节点的多个子节点具有相同的值,则它们将按键按字典顺序排列
对象排在最后,按字母顺序按键升序排序
因此,从上面可以看出,请注意,当您的数据具有数值时,它将按升序返回。现在,您已经知道了检索数据的顺序,只需对客户端应用程序进行更改,即可反向显示数据(按降序)。可能会反转您的列表或类似的内容?从Firebase文档中,使用
orderByChild
查询按以下顺序返回列表:-
对于指定的子键,具有空值的子项首先出现
接下来是指定子键的值为false的子项。如果多个子项的值为false,则会按关键字按字典顺序对它们进行排序
接下来是指定子键的值为true的子项。如果多个子项的值为true,则会按关键字按字典顺序对它们进行排序
接下来是具有数值的子项,按升序排序。如果指定子节点的多个子节点具有相同的数值,则它们将按键排序
字符串位于数字之后,按升序按字典顺序排序。如果指定子节点的多个子节点具有相同的值,则它们将按键按字典顺序排列
对象排在最后,按字母顺序按键升序排序
因此,从上面可以看出,请注意,当您的数据具有数值时,它将按升序返回。现在,您已经知道了检索数据的顺序,只需对客户端应用程序进行更改,即可反向显示数据(按降序)。可能会反转列表或类似内容?Firebase数据库查询会按升序返回项目。没有内置的运算符来反转该顺序。您可以在客户端反转结果,也可以在数据模型中添加具有反转值(即,-1*时间戳)的属性。前面的问题包括:、、或其中任何一个。使用负时间戳非常有效。ThanksI已使用。按从最新到最旧的顺序对元素进行反向排序。Firebase数据库查询以升序返回项目。没有内置的运算符来反转该顺序。您可以在客户端反转结果,也可以在数据模型中添加具有反转值(即,-1*时间戳)的属性。前面的问题包括:、、或其中任何一个。使用负时间戳非常有效。ThanksI使用。将元素从最新到最旧进行反向排序。