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