在 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 函数的提及。