firebase.json中的常规表达式重写

时间:2019-02-17 15:05:38

标签: regex firebase google-cloud-functions firebase-hosting

使用firebase with functions时,可以使用正则表达式匹配传入的请求,并根据匹配结果使用共享同一端点的特定函数?例如,我正在尝试:

{
    "hosting": {
        "rewrites": [
            {
                "source": "/^([0-9a-f]{2}[:-]){15}([0-9a-f]{2})$",
                "function": "getFingerprint"
            },
            {
                "source": "/*",
                "function": "callNew"
            }
        ]
    }
}

我想匹配以下网址:

http://test.firebaseapp.com/b4:e8:b4:ec:4a:36:76:4b:04:4a:83:c9:47:d4:c8:70

如果请求与定义的正则表达式匹配,则使用函数getFingerprint,如果不匹配,则在尝试实现“包罗万象”的过程中,我正在使用/*

目前唯一有效的模式是/*,但找不到使它起作用的方法:

^([0-9a-f]{2}[:-]){15}([0-9a-f]{2})$

因此,想知道是否可以使用firebase.json文件中的任何正则表达式来配​​置自定义重写和共享端点,例如,在这种情况下,例如/,或者可以更好地拥有唯一的资源,并且然后拆分URL路径以检索路径作为参数

1 个答案:

答案 0 :(得分:1)

摘自Firebase Hosting rewrite rules上的文档:

  

一个source指定一个glob pattern

全局模式是正则表达式的子集,例如,我不支持您使用的^$终止符表达式。