Eventarc能否匹配多Firestore集合触发同一款第二代Cloud Function?
Eventarc路径模式匹配Firestore多集合的问题
核心问题:能否匹配users/和clients/集合触发同一Cloud Function?
不行,你尝试的{col=[uc]*s}/{id}、{col=[clients,users]}/{id}、{col=clients,users}/{id}这几种写法都不符合Eventarc路径模式的语法规则,因此无法生效。
Eventarc的路径模式不支持正则风格的字符类、多选语法,仅支持以下有限的匹配规则:
- 固定字符串匹配:例如直接写
users/{id} - 单通配符匹配:例如
{col=*}/{id}(匹配所有一级集合) - 前缀/后缀通配符:例如
{col=user*}/{id}(匹配以user开头的集合)
如果只想精准匹配users和clients这两个特定集合,目前只能创建两个独立的Eventarc触发器,指向同一个Cloud Function。
疑问解答
CaptureGroup是否只能包含0个或1个Expression?
是的。每个捕获组的表达式只能是单个NameSegment——要么是固定字符序列,要么是包含一个*通配符的模式(比如prefix*、*suffix或单独*),不支持多个表达式组合。能否创建「Character Wildcard? Character Wildcard? Character...」形式的NameSegment?
不行。Eventarc的路径模式仅支持*作为通配符,且每个NameSegment中最多只能有一个*,既不支持?这类正则通配符,也不允许字符与通配符多次穿插的写法。\w\s\t~@#$%&.,?:;+='[]()-这些字符是字面量还是可用于类正则?
这些字符全部是字面量,不能用来构建类正则表达式。Eventarc的路径模式并非正则语法,仅支持*作为通配符,其他所有字符都按字面意思匹配。
内容的提问来源于stack exchange,提问作者Xao
相关产品推荐
相关产品推荐

