java - Firebase Firestore:防止Android-Java日期范围内的双重预订
问题描述
您好,我正在 Cloud Firestore 中保存房间预订数据,主要字段是:
startdate : TimeStamp
enddate : TimeStamp
我试图找到一些逻辑来防止重复预订,即没有两个日期范围相交的预订。任何实现此功能的想法都将受到高度赞赏。谢谢。
解决方案
由于您无法运行查询,因此仅使用规则是不可能进行这种操作的。相反,这需要从您可以从应用程序中调用的云函数中管理此类过程。
与您的客户端应用程序相比, Cloud Functions被认为是受控和权威的来源,它通常使用绕过安全规则的管理 SDK 运行,允许您执行客户端无法可靠执行的复杂查询。如果客户只能阅读他们各自的预订,并且您想确保客户不会使用黑客工具绕过预订逻辑,这将很有帮助。
使用此敏感操作,您还应该使用事务来完成预订,因为您可能同时有多个预订冲突。有了这个,Firebase Cloud Functions 使用 Node.js 在支持 Javascript 和 Typescript 的情况下运行。
推荐阅读
- python - 如何杀死正在运行的线程
- jmeter - JMeter - 仅对第一个请求禁用/忽略断言
- node.js - 完全没有理由的内存泄漏
- javascript - 使用 MS Edge 下载 Excel 文件
- java - 如何在 Eclipse 中从 maven 运行 jsoup 代码?
- c# - 肥皂服务标头
我创建了网络服务来接受这个肥皂请求。我测试并且如果我添加标题仍然适用于 s:mustUnderstand="0" 但如果我将其更改为 1 它会破坏
动作 s:mustUnderstand="1"
为了接受标头,我需要对我的网络服务进行哪些更改?提前致谢
<s
- html - 将 SVG 线条放置在 HTML 元素上,同时仍然允许与 HTML 元素交互
- python - Python-PPTX:如果行中的任何单元格有空文本,为什么表格中的行高会扩大?
- php - 具有多个防火墙的 Symfony 自定义身份验证提供程序
- java - JUnit + Spring:测试失败时的依赖注入 - CannotLoadBeanClassException