【发布时间】:2021-05-08 02:13:04
【问题描述】:
您好,我正在 Cloud Firestore 中保存房间预订数据,主要字段是:
startdate : TimeStamp
enddate : TimeStamp
我试图找到一些逻辑来防止重复预订,即没有两个日期范围相交的预订。任何实现此功能的想法都将受到高度赞赏。谢谢。
【问题讨论】:
标签: java android firebase google-cloud-firestore logic
您好,我正在 Cloud Firestore 中保存房间预订数据,主要字段是:
startdate : TimeStamp
enddate : TimeStamp
我试图找到一些逻辑来防止重复预订,即没有两个日期范围相交的预订。任何实现此功能的想法都将受到高度赞赏。谢谢。
【问题讨论】:
标签: java android firebase google-cloud-firestore logic
这种操作仅靠规则是不可能的,因为您无法运行查询。相反,这需要在 cloud functions 中管理此类进程,您可以在应用程序中调用该进程。
Cloud Functions 与您的客户端应用程序相比,它通常使用绕过Security Rules 的管理 SDK 运行,被认为是受控和权威的源,允许您执行客户端无法可靠执行的复杂查询。如果客户只能读取他们各自的预订,并且您想确保客户不会使用黑客工具绕过预订逻辑,这将很有帮助。
通过这种敏感操作,您还应该使用交易来完成预订,因为您可能同时有多个预订发生冲突。有了这个,Firebase Cloud Functions 使用 Node.js 在支持 Javascript 和 Typescript 的情况下运行。
【讨论】: