Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 云函数cron作业:如何管理嵌套集合&x27;s数据_Javascript_Firebase_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Javascript 云函数cron作业:如何管理嵌套集合&x27;s数据

Javascript 云函数cron作业:如何管理嵌套集合&x27;s数据,javascript,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Firebase,Google Cloud Firestore,Google Cloud Functions,我想使用云函数cron job触发嵌套收集数据的计划任务 我想要实现的是,如果“limit”字段中的时间戳值晚于当前时间,“status”字段将与嵌套集合中的值“expired”一起添加 父集合名称为“OrdersUser”,子集合名称为“Orders”。 我想管理“订单”集合中的文档。 计划的任务每一分钟运行一次 部署后,firebase控制台中出现错误 未定义id 我想我可以在云函数中使用通配符,所以我使用{id}来引用嵌套文档。但我不能 我想查询“订单”集合中的所有数据。 如何解决此问题

我想使用云函数cron job触发嵌套收集数据的计划任务

我想要实现的是,如果“limit”字段中的时间戳值晚于当前时间,“status”字段将与嵌套集合中的值“expired”一起添加

父集合名称为“OrdersUser”,子集合名称为“Orders”。 我想管理“订单”集合中的文档。

计划的任务每一分钟运行一次

部署后,firebase控制台中出现错误

未定义id

我想我可以在云函数中使用通配符,所以我使用{id}来引用嵌套文档。但我不能

我想查询“订单”集合中的所有数据。 如何解决此问题

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()
const db = admin.firestore()
const ref = functions.firestore

exports.statusOrdersUser = functions.runWith( { memory: '2GB' }).pubsub.schedule('* * * * *').onRun((context) => {

    // Consistent timestamp
    const now = admin.firestore.Timestamp.now();
    
    // Query all documents ready to perform
    //id is not defined.
    const queryOrdersUser = db.collection('OrdersUser').doc({id}).collection('Orders').where('limit', '<=', now)
    

    return queryOrdersUser.get()
            .then(querySnapshot => {

                if (querySnapshot.empty) {
                    return null;
                } else {
                    const promises = []

                    querySnapshot.forEach(doc => {
                        promises.push(doc.ref.update({ status: 'expired' }));
                    });

                    return Promise.all(promises);
                }
            });
})
const functions=require('firebase-functions'))
const admin=require('firebase-admin')
admin.initializeApp()
const db=admin.firestore()
const ref=functions.firestore
exports.statusOrdersUser=functions.runWith({memory:'2GB'}).pubsub.schedule('***')).onRun((上下文)=>{
//一致时间戳
const now=admin.firestore.Timestamp.now();
//查询所有准备执行的文档
//未定义id。

const queryOrdersUser=db.collection('OrdersUser').doc({id}).collection('Orders')。其中('limit','Firestore不支持文档ID的通配符操作。如果要查询子集合,需要提供嵌套文档的特定ID。不清楚函数如何确切知道要查询哪个子集合,因为它不接收任何参数或具有任何上下文


如果要查询名为“Order”的所有子集合,无论它们嵌套在数据库中的任何位置,都可以使用。我要查询所有子集合。在这种情况下,这是获取Orders集合中所有数据的正确方法吗?是的,您可以这样使用集合组查询。