You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:57:19