【发布时间】:2021-04-05 16:53:17
【问题描述】:
使用 Firestore 安全规则(第 2 版),如何将 Path 对象转换为字符串?整个路径作为一个字符串,而不是单个段。
我正在尝试编写一个通用函数以在各种 Match 语句中使用。像这样的:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// "pathobj" is a rules.firestore.Path object
function getPathAsString(pathobj) {
// Does not work:
return pathobj.toString();
}
// I would expect the following to evaluate to True:
match /foo/{fooid} {
allow read: if getPathAsString(path('one')) == 'one'
&& getPathAsString(path('one/!two')) == 'one/!two';
}
}
}
有人知道这是否可能吗?我阅读了documentation on Path 并在Firestore Rules Simulator 中尝试了各种方法,但均未成功。
【问题讨论】:
-
请编辑问题以解释
resourceee到底是什么,以及您如何从实际规则中调用getPath()。如果有来自文档的数据,请显示该文档的实际数据示例。问题需要明确您的输入是什么以及您的预期输出是什么。 -
嗨@DougStevenson,我已经添加(希望足够)说明函数参数是什么,以及我希望它如何工作。
-
我很困惑。如果您已经知道字符串是“一”,那么为什么要将它传递给
path()以转换回字符串?我不确定这个例子是否实用。或者您只是想从中消除实际文件及其内容?听起来您可能希望文档包含在规则评估期间显示为路径的引用类型对象? -
@DougStevenson 该示例的存在只是为了说明函数应该返回什么,给定一个 Path 对象。我唯一的问题是“有人知道如何将路径转换为字符串”
标签: firebase google-cloud-firestore firebase-security