【问题标题】:Firebase Firestore : Prevent Double booking in date range Android-JavaFirebase Firestore:防止Android-Java日期范围内的双重预订
【发布时间】:2021-05-08 02:13:04
【问题描述】:

您好,我正在 Cloud Firestore 中保存房间预订数据,主要字段是:

startdate : TimeStamp
enddate : TimeStamp

我试图找到一些逻辑来防止重复预订,即没有两个日期范围相交的预订。任何实现此功能的想法都将受到高度赞赏。谢谢。

【问题讨论】:

    标签: java android firebase google-cloud-firestore logic


    【解决方案1】:

    这种操作仅靠规则是不可能的,因为您无法运行查询。相反,这需要在 cloud functions 中管理此类进程,您可以在应用程序中调用该进程。

    Cloud Functions 与您的客户端应用程序相比,它通常使用绕过Security Rules 的管理 SDK 运行,被认为是受控和权威的源,允许您执行客户端无法可靠执行的复杂查询。如果客户只能读取他们各自的预订,并且您想确保客户不会使用黑客工具绕过预订逻辑,这将很有帮助。

    通过这种敏感操作,您还应该使用交易来完成预订,因为您可能同时有多个预订发生冲突。有了这个,Firebase Cloud Functions 使用 Node.js 在支持 Javascript 和 Typescript 的情况下运行。

    Firestore transactions for Node

    【讨论】:

    • 谢谢,我会看看交易,但请您详细说明云功能如何处理这种情况?
    • 修改了我的回答以解释 Cloud Functions
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2022-12-15
    • 2016-10-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多