在 Firestore 安全规则中将字符串转换为布尔值时找不到函数
Function not found when converting string to boolean in Firestore security rules
我正在写一个security rule on Firestore that converts a string into a boolean. According to the documentation,我们应该可以使用bool
函数来完成。
我创建了以下规则:
match /posts/{postID} {
allow get: if bool("true") == true;
}
这似乎与我们在文档中的示例相同。但是,当我使用模拟器 运行 此规则时出现 Function not found error: Name: [bool]. for 'get' @ L6
错误。
起初,我认为这可能是模拟器中的错误。因此,我也在 Firebase 控制台上尝试了相同的规则,但它也不起作用:
这是 Firebase 上的错误还是我在这里做错了什么?
firebaser 在这里
我咨询了我们的工程团队,他们查看了规则引擎这部分的代码,这可能是该文档作者的一厢情愿:否 built-in bool
函数存在。
好消息是您可以自己定义这样的函数:
function bool(str) {
return str == "true" ? true : (str == "false" ? false : null);
}
我们将更新文档以包含此定义或完全删除对 bool
函数的提及。
我正在写一个security rule on Firestore that converts a string into a boolean. According to the documentation,我们应该可以使用bool
函数来完成。
我创建了以下规则:
match /posts/{postID} {
allow get: if bool("true") == true;
}
这似乎与我们在文档中的示例相同。但是,当我使用模拟器 运行 此规则时出现 Function not found error: Name: [bool]. for 'get' @ L6
错误。
起初,我认为这可能是模拟器中的错误。因此,我也在 Firebase 控制台上尝试了相同的规则,但它也不起作用:
这是 Firebase 上的错误还是我在这里做错了什么?
firebaser 在这里
我咨询了我们的工程团队,他们查看了规则引擎这部分的代码,这可能是该文档作者的一厢情愿:否 built-in bool
函数存在。
好消息是您可以自己定义这样的函数:
function bool(str) {
return str == "true" ? true : (str == "false" ? false : null);
}
我们将更新文档以包含此定义或完全删除对 bool
函数的提及。