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

问题描述 投票:0回答:1

我有一个 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不要在给定的插入路径中创建孤儿文档和集合,并返回一个错误(由调用者处理)?

firebase google-cloud-firestore
1个回答
2
投票

不,这是不可能的。 如果你想知道某样东西是否存在,你必须对它进行查询。

© www.soinside.com 2019 - 2024. All rights reserved.