繁体   English   中英

使用Cloud Firestore和Javascript按时间戳排序和获取元素

[英]Order and get element by timestamp using cloud Firestore and Javascript

在此处输入图片说明

我有一个可以通过Cloud Firestore访问的数据库。 到目前为止,如果我努力解决链接问题,它仍然可以正常工作。 但是,对于某些信息,我想在时间戳之后对数据库的集合进行排序,并写出最新的事件,在我的情况下是最新的温度。

在图中的链接下方可以看到,我想要的结果将是温度19(546787867678asd8和时间戳:2019年3月5日UTC + 1)

我已经尝试过不同的解决方案,但没有一个导致预期的结果。 不幸的是,我不知道为什么。 您可以在下面找到最新代码

function getLastData() {
    return admin.firestore().collection('temperatur').orderBy('timestamp', 'desc').limit(1).get().then(querySnapshot => {
        if (!querySnapshot.empty) {
            const queryDocumentSnapshot = querySnapshot.docs[0].temp;
            console.log('The temperature is ', queryDocumentSnapshot);
            return queryDocumentSnapshot;
        } else {
            console.log('No document');
            return null;
        }
    });}

console.log(getLastData());

我期望如下所示:温度为23但是,结果是:温度未定义

通过docs ,您必须使用.data().get(<prop>)将其提取:

function getLastData() {
    return admin.firestore().collection('temperatur').orderBy('timestamp', 'desc').limit(1).get().then(querySnapshot => {
        if (!querySnapshot.empty) {
            const queryDocumentSnapshot = querySnapshot.docs[0].get('temp');
            console.log('The temperature is ', queryDocumentSnapshot);
            return queryDocumentSnapshot;
        } else {
            console.log('No document');
            return null;
        }
    });}

console.log(getLastData());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM