У меня есть облачная функция, которую я вызываю, и получаю эту ошибку: Не знаете, что делать?Я попытался удалить оператор return и вернуть Primise.all () и вернуть batch.commit (), и все не удалось. Мне также пришлось сделать eventsRef var вместо const, не знаю почему.
Ошибка:
TypeError: eventsRef.where(...).then is not a function
at exports.deleteOldEventLocations.functions.https.onRequest (/user_code/index.js:235:6)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:57:9)
at /var/tmp/worker/worker.js:689:7
at /var/tmp/worker/worker.js:673:9
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
Функция:
exports.deleteOldEventLocations = functions.https.onRequest((req, res) => {
const db = admin.firestore();
var eventsRef = db.collection('events');
const currentDate = new Date();
const endDate = new Date(currentDate.getTime + 2 * 60 * 60 * 1000);
const batch = db.batch();
const fieldValue = db.FieldValue;
var query = eventsRef.where('startDate', '<', endDate)
.then(snapshot => {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
let eventRef = eventsRef.doc(doc.id);
batch.update(eventRef, { g: fieldValue.delete() });
batch.update(eventRef, { l: fieldValue.delete() });
});
batch.commit();
return;
})
.catch(err => {
console.log('Error getting documents', err);
});
});