Firebase实时数据库规则:如何将Key解析为数字进行比较?
Firebase实时数据库规则:将字符串时间戳Key转为数字比较
问题说明
我使用Unix时间戳作为节点Key,用来避免同一秒内重复写入,同时实现按推送日期排序。想要限制用户写入的Key不超过当前时间戳,尝试编写了以下规则:
"$timestamp": { ".write": "now/1000 - $timestamp > 0" }
但运行时报错:
database: database.rules.json:XX:XX: Invalid - expression: right operand is not a number.
根据官方文档,数据库的Key始终是字符串类型,无法直接与数字进行比较。想请教有没有办法在Firebase实时数据库规则中将Key解析为数字,从而使用比较运算符?
当前采用的冗余数据方案
目前我通过冗余存储数据的方式实现了需求,规则如下:
"$timestamp": { ".write": "now/1000 - newData.child('typed_timestamp').val() > 0", "body":{}, "typed_timestamp": { ".validate": "newData.isNumber() && newData.val()+'' == $timestamp" } }
内容的提问来源于stack exchange,提问作者Anthony Bobenrieth
相关产品推荐
相关产品推荐

