Я использую Firestore в бета-версии с Cloud Functions. В моем приложении мне нужно вызвать функцию, которая прослушивает событие onCreate
в /company/{id}/point/{id}
и выполняет вставку (collection('event').add({...}))
Моя проблема: облачные функции с Firestore требуют идемпотентной функции. Я не знаю, как гарантировать, что если моя функция сработает два раза подряд с одним и тем же событием, я не добавлю два документа с одинаковыми данными.
Я обнаружил, что context.eventId
может решить эту проблему, но я не знаю, как его использовать.
exports.creatingEvents = functions.firestore
.document('/companies/{companyId}/points/{pointId}')
.onCreate((snap, context) => {
//some logic...
return db.doc(`eventlog/${context.params.companyId}`).collection('events').add(data)
})