我有一个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不要在给定的插入路径中创建孤立的文档和集合并返回错误(由调用者处理)?
答案 0 :(得分:2)
否,不可能。如果您想知道是否存在某些东西,则必须对其进行查询。