gpt4 book ai didi

firebase - Firestore 规则 : condition check fails when data is number

转载 作者:行者123 更新时间:2023-12-03 23:17:06 26 4
gpt4 key购买 nike

以下是当条件中使用的文档字段的数据类型为数字时失败的示例规则 -

match message_box/{user_id}/inbox {
allow read: if get('..../users/$(request.auth.uid)).data['user_id'] == user_id
}

此规则总是失败,因为在数据中字段值是数字,但在路径变量 {user_id} 中它被捕获为字符串。

以下两项测试证实这是一个实际问题-
  • 在规则中,通过在比较的右侧使用硬编码的整数值(例如- data['user_id'] == 456),然后读取成功。或-
  • 在data中,设置user_id字段的数据类型为字符串。在那种情况下
    此帖子顶部指定的匹配规则成功。

  • 有什么简单的方法可以让它顺利运行?在规则文档中看不到将 int 转换为 string 的方法。

    最佳答案

    这个问题被引用here .

    如果将来有人遇到这种情况,请查看有关在 Firestore 规则中转换数据类型的这些文档:

    String -> Integer

    Integer -> String

    例子:

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

    string(true) == "true"
    string(1) == "1"
    string(2.0) == "2.0"
    string(null) == "null"

    关于firebase - Firestore 规则 : condition check fails when data is number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48795711/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com