我需要在服务器端实现一些复杂的业务逻辑,以防止我的 Firestore 文档之间发生内部冲突。特别是我想防止在日历中重复预订。
我一直在研究将 Cloud Firestore 功能作为达到目的的一种手段。但是,所有的写操作事件似乎都是事后触发的,因此损坏后相关业务逻辑不会被调用。
到目前为止,我只发现了一种模式来规避这个问题,那就是使用这样的间接集合:
- 将操作写入“temporary_calendar”-collection
- onWrite for 'temporary_calendar'-collection 被触发
- 检查新创建的临时日历项是否与现有的“日历”集合项冲突
- 如果没有,将临时项目写入“日历”集合
这是实现这一点的标准方式吗?如果是这样,将冲突传达回原始客户端的好方法是什么?