Firebase实时数据库日历日期安全规则:路径日期匹配当前日期实现
Firebase实时数据库安全规则:路径日期与当前日期匹配校验
你可以直接通过路径中的$year、$month、$day占位符提取日期,结合Firebase规则的内置时间函数完成校验,完全不需要通过JSON Body传递日期。具体实现如下:
修改后的安全规则
"calendar": { "$year": { "$month": { "$day": { "$uid": { ".write": "auth.uid == $uid && int($year) == date(now).year && int($month) == date(now).month && int($day) == date(now).day" } } } } },
关键逻辑说明
- 路径参数转数字:路径中的
$year、$month、$day是字符串类型,用int()函数转成数字后才能和日期对象的属性对比。 - 当前日期获取:
date(now)会把当前时间戳(now是毫秒级时间戳)转换成包含year、month、day属性的日期对象,这些属性都是数字类型,且月份从1开始计数(和你路径中的月份格式一致)。 - 权限组合校验:同时满足用户UID匹配和日期匹配两个条件,才允许写入操作。
内容的提问来源于stack exchange,提问作者Maqcel
相关产品推荐
相关产品推荐

