Ваш вопрос немного расплывчатый, но звучит так, как будто вы хотите запросить все просроченные документы и обновить их.Я предполагаю, что вы сохраняете даты выполнения как метки времени в поле due_time
, и вы хотите пометить поле overdue
как true
, когда задача просрочена.Вы можете сделать что-то вроде:
exports.scheduledFunctionCrontab = functions.pubsub
.schedule('0 0 6 * *')
.onRun(async (context) => {
const overdueSnap = await admin.firestore().collection('tasks')
.where('overdue','==',false)
.where('due_time' '<=', new Date()).get();
await Promise.all(overdueSnap.docs.map((doc) => doc.ref.update({overdue: true}));
});
Этот код выполняет следующие действия:
- Находит все документы с
due_time
в прошлом, которые еще не имеют overdue
помеченный как true
. - Обновляет каждый из этих документов параллельно, устанавливая
overdue
в true
.
Ваши особенности могут отличаться, но это общий подход ктип проблемы, которую вы описываете.