Порядок Firestore По метке времени DESC - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь отобразить данные из 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) });
                }
            }); 

результат предыдущего кода - это порядок данных по идентификатору AS C. Также я завершаю sh ИНДЕКСИНГ из консоли Firebase следующим образом:

enter image description here

Надеюсь, я ясно объяснил проблему. Спасибо

1 Ответ

1 голос
/ 19 июня 2020

С помощью моего друга мы пришли с этим решением и заставили код работать так, как мы и ожидали:

Собираюсь поделиться этим:

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 });
            }
        });
...