【问题标题】:parse long from exponential number in firestore security rules从 Firestore 安全规则中的指数数解析 long
【发布时间】:2020-02-14 04:46:27
【问题描述】:

我允许用户推送像 => 1.581652625083E12 这样的值

现在我如何在 Firestore 安全规则中解析出一个长数字?

我想知道它的值在某个范围内

它可能看起来像时间戳,但它不是

我尝试在reference docs 中查找所有内容,但没有发现任何有用的内容

有浮点解析参考

float("2.2") == 2.2
float(2) == 2.0

可以进行int解析

int("2") == 2
int(2.0) == 2

那么有没有办法像那样解析long?

puff 和团队请帮忙

【问题讨论】:

    标签: google-cloud-firestore firebase-security


    【解决方案1】:

    如果您允许用户在 Firestore 中写入任何类型的数字,则它们应表示为数字类型字段。这意味着您不应该允许格式化为指数数字的字符串。没有任何方法可以解析任意字符串格式的字符串 - 客户端应该解析这些字符串并将其转换为实际数值。

    documentation 声明 Firestore 仅限于 64 位浮点数。如果您使用大于此值的任何内容,Firestore 编号字段将不适合您。

    【讨论】:

    • 谢谢道格!我很感激。
    • 我想说的是,firestore 安全规则不适合检查“写入”操作。对于一个有 5 个节点的小项目,我有超过 500 行安全规则。主要是因为数据验证。我正在切换到 API。即使我已经使用模拟器测试了所有可能的情况。某事总是失败。很烂
    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2019-07-05
    • 2020-07-07
    • 1970-01-01
    • 2021-05-03
    • 2020-06-19
    • 2019-06-17
    • 1970-01-01
    相关资源
    最近更新 更多