firebase - 当父集合不存在时,拒绝在firestore中创建集合项的适当方法?
问题描述
我有一个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 不要在给定的插入路径中创建孤立的文档和集合并返回错误(由调用者处理)?
解决方案
不,这是不可能的。如果您想知道某物是否存在,则必须对其进行查询。
推荐阅读
- python - 如果 PLY 解析器未找到语法错误,则获取输出的方法
- c# - TypeScript 从不输入 C#?
- java - SSLHandshakeException:没有共同的密码套件
- c++ - bitset:非类型模板参数不是常量表达式
- powershell - Jenkins Pipeline 中的 PowerShell 环境变量提供 `org.jenkinsci.plugins.workflow.cps.EnvActionImpl@1b69f5bb:VARIABLE_NAME`
- r - 将文本文件另存为 RData 并将其导入 R
- python - 使用 bazel 时如何设置 LD_LIBRARY_PATH?或者有没有办法在使用 bazel 时避免使用 LD_LIBRARY_PATH?
- c# - 由于 exe 文件的锁定时间,我无法第二次执行我的代码?
- javascript - 这段代码在设置状态时是什么意思?
- java - 为什么我在单元测试中的 RxJava 订阅丢失而没有被处置