Вы не можете использовать await
без ключевого слова async
ни в одной функции, включая функцию обратного вызова. Итак, snapshot.forEach(doc => {...}) should be: snapshot.forEach(async doc => {...})
ошибка: SyntaxError: await действителен только в функции async
Чтобы иметь возможность использовать await внутри функции, синтаксис всегда должен быть как показано ниже
async function () {
await functionReturnsPromise()
}
Приведенный ниже код неверен, вы получите ошибку выше:
async function () {
functionTest(()=>{
await functionReturnsPromise()
})
}
Нам потребуется поставить ключевое слово async
перед функцией обратного вызова, чтобы иметь возможность запустить код как показано ниже
async function () {
functionTest( async ()=>{
await functionReturnsPromise()
})
Измените ваш код следующим образом:
async function mydelete() {
try {
let snapshot = await cityRef.get()
snapshot.forEach(async (doc) => {
let docid = doc.id;
if (doc.id.length == 4)
await db.collection('collection').doc(doc.id).delete();
else if (doc.data().Timestamp._seconds < new Date() - 18000) {
console.log(doc.id)
let a = await db.collection('collection').doc(doc.id).delete()
} else console.log('false')
})
}
catch (err) {
// handle error here
}
}
Примечание: может быть синтаксическая ошибка в коде в приведенном выше коде