Поэтому обычно на базовом уровне вы часто видите функции, запускаемые коллекцией firestore, написанные следующим образом:
exports.myFunction = functions.firestore
.document('my-collection/{docId}')
.onWrite((change, context) => { /* ... */ });
При этом я запускаю свои развертывания немного по-другому, хотя структурно идентичен.
- I have a exports.main = (content, event) where:
- event holds the EVENT information:
- eventId (например: 66e9e123-d3fg-1234-123a-1234f110b71b-0)
- eventType (например, провайдеры / cloud.firestore / eventTypes / document.create)
- notSupported (например, {})
- параметры (например: {eventId: 1CB89AD0-5AS0-1233-SD70-E3B7DS52D23D})
- ресурс (e.x: projects / its-the-project-id / databases / (по умолчанию) / documents / TheCollection / 1CB89AD0-5AS0-1233-SD70-E3B7DS52D23D
- отметка времени (например, 2021-05-19T20: 00: 24.131151Z)
- а контент - это данные
Я развертываю функции через Terraform, где определяю:
- event_trigger:
- event_type = providers/cloud.firestore/eventTypes/document.create
- ресурс = $ {TheCollection} / {eventId}
Итак, как вы можете видеть, хотя то, как я это делаю, безусловно, требует дополнительной настройки, он очень идентичен, он просто настроен более подходящим для GCP способом (если хотите)
Итак, в этом контексте:
- Is there any possible way to have more than one collection/document trigger, trigger only 1 cloud function?
- So say I have collection x and collection y, I want them both to trigger the same cloud function
- Если есть способ, не стесняйтесь писать его в стиле, который часто пишут с помощью Firebase, и я могу попытаться перевести его для развертывания в Firestore.