Можем ли мы запускать облачные функции Firebase при создании коллекции (не «документа»)? - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь создать сценарий, при котором firebase срабатывает только один раз при создании коллекции, а не каждый раз, когда документ добавляется в коллекцию. Допустим, я хочу, чтобы он срабатывал только для первого документа, добавленного в коллекцию, а не для любого другого документа, добавленного в ту же коллекцию. Как это можно сделать? Пожалуйста, помогите !!!

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Пока это невозможно сделать напрямую. Вы можете проверить, содержит ли коллекция какие-либо элементы, и означает ли это, что она существует.

const result =await firestore.collection("collection").limit(1).get()
if(result.size){
  // Collection exists
}
0 голосов
/ 04 февраля 2020

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

Если вы хотите узнать, в какой коллекции содержится первый документ, вам потребуется:

  1. Ведение подсчета документов в этой коллекции (возможно, в еще одном документе в другой коллекции) и запуск изменения этого значения при изменении значения от 0 до 1.
  2. Запрос всех документов в коллекции, в которой только что был создан документ, чтобы выяснить, был ли он первым.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...