【发布时间】:2017-12-10 19:39:40
【问题描述】:
我在使用 react native 从 firebase 和 javascript 中按 desc 顺序返回对象数组时遇到问题。我本质上是“加入”两个火力基地父母,然后将他们推入一个阵列。
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 数据库查询按升序返回项目。没有内置运算符可以反转该顺序。您可以在客户端反转结果,或者将具有反转值(即 -1 * 时间戳)的属性添加到您的数据模型。
-
使用负时间戳非常有效。谢谢
-
我使用 .reverse 将元素从最新到最旧排序。
标签: javascript firebase react-native firebase-realtime-database nosql