google-cloud-firestore - 在 Firestore 安全规则 str.matches(regex) 中将“i”标志放在哪里?
问题描述
我正在为我的 Firebase Firestore 项目编写安全规则,但我似乎找不到一个参考来举例说明使用带有正则表达式作为参数的match()方法的正确语法。这是我现在使用的:
request.resource.data.str.matches("^[a-z0-9]+$");
我现在的问题是,将不区分大小写的标志“i”放在表达式中的什么位置?我尝试了一些不同的组合,但没有奏效。
谢谢。
解决方案
Firestore 安全规则遵循正则表达式的Google RE2 格式。
这意味着您可以为匹配定义一个非捕获组,并将该组标记为使用不区分大小写的匹配:
allow write: if request.resource.data.str.matches("(?i:^[a-z0-9]+)$");
当然,您也可以简单地扩展字符组以包含大写和小写 ASCII 字符:
allow write: if request.resource.data.str.matches("^[a-zA-Z0-9]+$");
推荐阅读
- flutter - 如何在 Flutter 中从 Text Widget 中检索文本数据
- c# - 将数据插入数据网格视图c#
- jquery - 用jquery只显示N行段落的问题
- java - elasticsearch 和 fscrawler 的 JVM 设置
- javascript - 有没有办法在下一个 js 中动态导入 _app.js 中的组件?
- javascript - 为段落的每个换行符添加跨度
- java - 如何有效删除重复的属性实体
- synchronization - 多台电脑时间同步
- java - 什么会导致无效地址 0xda9739b8 传递给 free:值未分配?
- sql - 将一个表头的值分发到另一个表的几行具有相同的 id