Как повторно использовать подстановочный параметр в триггере облачной функции? - PullRequest
0 голосов
/ 03 января 2019

Как повторно использовать один и тот же подстановочный параметр в триггере облачной функции?

Например, я хочу триггер только на: ‘/rootCollection/{docID}/{docID}/{doc}’. Мне нужен только триггер функции, если документ создан в подколлекции с тем же именем, что и родительский документ ({docID}).

Я не хочу триггера, если документ создан в другой коллекции в документе {docID}.

Итак, я попробую использовать:

functions.firestore.document(‘/rootCollection/{docID}/{docID}/{doc}’)

Но это выдает ошибку при развертывании.

Если я, например, поменяю подстановочное имя на {docIDCollection}, это сработает:

exports.exampleFunction = functions.firestore.document(‘/rootCollection/{docID}/{docIDCollection}/{doc}’)
.onCreate(async (snapshot, context) => {

Но функция срабатывает, когда любой документ создается в любом подколлекции в документе {docID}. Даже если подколлекция не имеет того же имени, что и родительский документ. Я не хочу этого.

Как сделать третий параметр таким же, как второй подстановочный знак, чтобы функция запускалась только для подколлекции с идентификатором: {docID}?

Кто-нибудь поможет?

1 Ответ

0 голосов
/ 03 января 2019

Нет способа проверить, что вы пытаетесь сделать на пути ваших облачных функций. Каждое имя параметра в пути должно быть уникальным.

Вместо этого вам придется разрешить функции de запускаться при большем количестве записей, а затем игнорировать записи в различных подколлекциях в вашем коде, сравнивая именованные параметры.

exports.exampleFunction = functions.firestore.document(‘/rootCollection/{docID}/{docIDCollection}/{doc}’)
.onCreate(async (snapshot, context) => {
  if (context.params.docID == context.params.doc) {
    ...
...