我無法按原樣返回firebase和javascript中desc順序的對象數組,並且返回原生狀態。我本質上是「加入」兩個firebase父母,然後將他們推入陣列。基於時間戳的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')」,但沒有運氣。
Firebase數據庫查詢按升序返回項目。沒有內置的操作員來逆轉該訂單。您可以顛倒客戶端的結果,也可以將具有反向值(即-1 *時間戳)的屬性添加到數據模型中。 –
有關此問題的以前的問題:https://stackoverflow.com/q/25611356,https://stackoverflow.com/q/38548406,https://stackoverflow.com/q/34156996或任何[此結果列表(http://stackoverflow.com/search?q=%5Bfirebase-database%5D+descending)。 –
使用負面時間戳完美。謝謝 – Neil