javascript - Firestore orderBy Timestamp DESC

标签 javascript react-native sorting google-cloud-firestore

我正在尝试按时间戳降序显示 Firestore 中的数据,我按照文档进行操作,但似乎我做错了。

这是我的尝试:

const outputSnapShot = {};
        this.subscribe = firebase
            .firestore()
            .collection('orders')
            .where('restaurant_code', '==', this.state.restaurantCode)
            .orderBy('timestamp', 'desc')
            .onSnapshot((doc) => {
                doc.docs.map(function(documentSnapshot) {
                    return (outputSnapShot[documentSnapshot.id] = documentSnapshot.data());
                });
                if (this._isMounted) {
                    this.setState({ dataSource: Object.entries(outputSnapShot) });
                }
            }); 

先前代码的结果是 id ASC 的数据顺序,我也完成了 Firebase 控制台的索引,如下所示:

enter image description here

我希望我清楚地解释了这个问题。
谢谢

最佳答案

在我 friend 的帮助下,我们提出了这个解决方案,并使代码按预期工作:

打算分享这个:

this.subscribe = firebase
        .firestore()
        .collection('orders')
        .where('restaurant_code', '==', this.state.restaurantCode)
        .orderBy('timestamp', 'desc')
        .onSnapshot((docSnapshot) => {
            const dataSource = [];
            docSnapshot.forEach((doc) => {
                dataSource.push(doc.data());
            });
            if (this._isMounted) {
                this.setState({ dataSource });
            }
        });

关于javascript - Firestore orderBy Timestamp DESC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62474577/

相关文章:

javascript - 如何通过 JavaScript 在输入中设置值?

javascript - 在Reducer中使用.json渲染FlatList中的prop

javascript - 如何在 ReactJS 和 AG Grid 中一次播放数组中的一个视频

sorting - 如何使用子列表对列表进行排序(常见的 Lisp)

c - 为什么未排序的数组在我的代码运行时发生变化?

python - 通过元组键列表分配矩阵元素

javascript - crossfilter:如何同时对开始日期和结束日期列使用交叉过滤器

javascript - 我可以更快地从文本框中收集多个变量吗?

react-native - 安卓 'react-native-gesture-handler' 错误

javascript - 如何使 document.bgcolor 工作?