【问题标题】:Complex function in firestore security ruleFirestore 安全规则中的复杂功能
【发布时间】:2018-11-09 17:44:40
【问题描述】:

假设我有一个具有公钥和私钥对(非对称加密)的用户,他用自己的私钥签署“数据”并在 Firestore 集合中创建如下所示的文档:

{ "publicKey": "XXX", "data": "XXX", "signature": "XXX" }

是否可以仅在签名有效时才允许创建,使用“publicKey”和“data”作为参数,使用 Firestore 安全规则? 或者我必须使用云功能来验证和创建文档服务器端?

【问题讨论】:

    标签: node.js firebase google-cloud-firestore google-cloud-functions firebase-security


    【解决方案1】:

    用于 Cloud Firestore 规则的安全规则语言故意不是图灵完备的。此外,安全规则中的自定义函数仅限于单个 return 语句,没有分支或循环,最大调用堆栈深度为 10。所以简短的回答是:这几乎绝对不可能。

    也就是说,规则中有一些基本的全局数学函数: https://firebase.google.com/docs/reference/rules/rules.math

    【讨论】:

    • 这种情况下的最佳做法是什么?
    • 我可能会在每次写入后使用云函数来执行此验证。
    猜你喜欢
    • 2020-04-29
    • 1970-01-01
    • 2019-11-09
    • 2019-12-27
    • 2020-01-14
    • 2018-04-14
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多