当父集合不存在时,在Firestore中拒绝创建集合项的适当方法?

时间:2020-04-25 18:34:37

标签: firebase google-cloud-firestore

我有一个onRequest云函数,可将一个项目插入我的Firestore实例:

...
db.collection('game').doc(game_id).collection('board').doc(board_id).add(new_piece)
...

如果我的数据库中不存在game_id,则仍会插入文档new_piece,大概是在孤立的gameboard集合下(它们显示为斜体并且略有倾斜)在Firestore控制台中消失了。

这似乎是标准行为。但是,如果我想在父路径不存在的情况下拒绝创建文档,那么最好的方法是什么?

一种明显的方法是首先检查gameboard集合的存在。但是,这会增加额外的延迟并增加更多.then块(我不想在这里以单子形式来考虑!)。这是推荐的方法吗?

有没有一种方法可以简单地指示firestore不要在给定的插入路径中创建孤立的文档和集合并返回错误(由调用者处理)?

1 个答案:

答案 0 :(得分:2)

否,不可能。如果您想知道是否存在某些东西,则必须对其进行查询。

相关问题