Firebase Firestore安全规则允许在开始日期和结束日期之间最多31天的间隔内查询文档

Firebase Firestore安全规则允许在开始日期和结束日期之间最多31天的间隔内查询文档,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我有这样的文件: timesheets (collection) -- auto_doc_id_1 (document): { start_time: yyyy:mm-dd hh:mm:ss duration: int -- auto_doc_id_2 (document): { start_time: yyyy:mm-dd hh:mm:ss duration: int .... 我的疑问是: firestore.collection("timesheet

我有这样的文件:

timesheets (collection)
-- auto_doc_id_1 (document): {
   start_time: yyyy:mm-dd hh:mm:ss
   duration: int

-- auto_doc_id_2 (document): {
   start_time: yyyy:mm-dd hh:mm:ss
   duration: int

....
我的疑问是:

firestore.collection("timesheets")
.where("start_time", ">", start_from)
.where("start_time", "<", start_to)
.orderBy("start_time")
.get();
firestore.collection(“时间表”)
。其中(“开始时间”,“开始时间>”,开始时间)

.where(“start_time”,“我认为这在安全规则中是不可能的,甚至在查询中也是不可能的,因为不可能在条件的值中使用对字段的引用


解决此问题的常用方法是将两个日期之间的间隔存储为一个单独的字段。然后,您可以强制执行此间隔是安全规则中的正确值,并对该间隔字段进行查询。

我认为这在安全规则中是不可能的,甚至在查询中也是不可能的,因为不可能在va中使用对字段的引用一种状态的价值


解决此问题的常用方法是将两个日期之间的间隔存储为一个单独的字段。然后,您可以强制执行此间隔是安全规则中的正确值,并对该间隔字段进行查询。

这不可能在安全规则中对查询中的每个文档单独强制执行。您可能需要提供以下值查询中的ed相互之间有一定的限制,但不能对彼此分开的每个文档执行此操作


唯一可行的选择是将开始和结束之间的时间距离写入文档中作为其自己的字段,并将其用作查询和规则中的筛选器。

这不可能在查询中为每个文档单独实施安全规则。您可能要求查询中提供的值具有某些限制相对于彼此,但不能对彼此分开的每个文档执行此操作

您唯一可行的选择是将开始和结束之间的时间距离写为文档中自己的字段,并将其用作查询和规则中的过滤器