我有一个 onRequest
云函数,将一个项目插入到我的firestore实例中。
...
db.collection('game').doc(game_id).collection('board').doc(board_id).add(new_piece)
...
如果 game_id
在我的数据库中并不存在,文档中的 new_piece
仍被插入,可能是在孤岛上的 game
和 board
集合(它们在 firestore 控制台中显示为斜体并略微变淡)。
这似乎是标准行为。然而,如果我想拒绝创建文档,如果它们的父路径不存在,最好的方法是什么?
一个显而易见的方法是首先检查是否存在 game
和 board
的集合。然而,这增加了额外的延迟和更多的 .then
块(我不想在这里用单体来思考!)。这是推荐的方法吗?
有没有一种方法可以让我简单地指示firestore不要在给定的插入路径中创建孤儿文档和集合,并返回一个错误(由调用者处理)?
不,这是不可能的。 如果你想知道某样东西是否存在,你必须对它进行查询。