Подходящий способ отказаться от создания элемента коллекции в FireStore, когда родительская коллекция не существует? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть облачная функция 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 не создавать осиротевшие документы и коллекции по заданному пути вставки и возвращать ошибку (для обработки вызывающей стороной)?

1 Ответ

1 голос
/ 25 апреля 2020

Нет, это невозможно. Если вы хотите узнать, существует ли что-то, вам придется запросить его.

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