У меня есть облачная функция onRequest
, которая вставляет элемент в мой экземпляр Firestore:
...
db.collection('game').doc(game_id).collection('board').doc(board_id).add(new_piece)
...
Если game_id
не существует в моей базе данных, do c new_piece
все еще вставлен, предположительно в потерянных коллекциях game
и board
(они отображаются курсивом и слегка выцветают в консоли firestore).
Это, кажется, стандартное поведение. Однако, если я хочу отклонить создание документов, если их родительский путь не существует, каков наилучший способ сделать это?
Один очевидный способ - сначала проверить наличие game
и board
коллекции. Однако это добавляет дополнительную задержку и больше .then
блоков (я не хочу думать здесь с точки зрения монад!). Является ли это рекомендуемым способом?
Есть ли способ, которым я могу просто проинструктировать firestore не создавать осиротевшие документы и коллекции по заданному пути вставки и возвращать ошибку (для обработки вызывающей стороной)?