Вы вызываете набор асинхронных update()
методов, но не ждете, пока они завершатся, прежде чем вызывать метод get()
и отправлять ответ.
Таким образом, вы также должны использовать await
для update()
методов, как показано ниже:
let eventsRef = db.collection('events').doc(eventId);
if (attStatus === true) {
// Add a new ID to the "eventAttendanceList" array field.
await eventsRef.update({
eventAttendanceList: admin.firestore.FieldValue.arrayUnion(userId)
});
// Remove a ID from the "eventNonAttendanceList" array field.
await eventsRef.update({
eventNonAttendanceList: admin.firestore.FieldValue.arrayRemove(userId)
});
}
else if (attStatus === false) {
//...
}
else {
//...
}
let eventUpdated = await db.collection('events').doc(eventId).get()
response.status(200).json({ status: "200", message: "Event RSVP successfully updated", event: eventUpdated.data() }).send;
Я предполагаю, что вы используете HTTP Cloud Function . Обратите внимание, что вам не нужно делать return
, просто позвоните response.redirect()
, response.send()
или response.end()
. См. do c и соответствующее видео .
Также обратите внимание, что если вы вызываете несколько записей или обновлений документа подряд, вы можете использовать пакетная запись .