Firebase安全规则中如何解析日期?Date.parse无法使用问题咨询
Firebase实时数据库安全规则校验字符串日期解决方案
方案1:客户端提前转成时间戳存储(推荐)
Firebase安全规则对数字处理最直接,你可以在客户端把字符串日期转换成毫秒级时间戳(比如用Date.parse()或new Date(dateStr).getTime()),然后把这个数字存入数据库。
对应的安全规则直接比较数字即可:
".write": "data.myTimestamp.val() > now"
这种方式完全避开规则里的日期解析限制,兼容性和可靠性最高。
方案2:用Firebase规则内置的parseDate()函数
如果必须存储字符串日期,Firebase安全规则提供了内置的parseDate()方法,但仅支持RFC 3339标准格式的日期字符串(例如"2024-05-20T14:30:00Z")。
你可以用这个方法解析字符串后转成毫秒数,再和now比较:
".write": "parseDate(data.myStringDate.val()).toMillis() > now"
注意:如果你的日期字符串不符合RFC 3339格式,这个方法会直接触发规则校验失败,所以必须确保客户端写入的日期严格遵循该格式。
内容的提问来源于stack exchange,提问作者Marty
相关产品推荐
相关产品推荐

