Firebase函数配置正在截断我的API密钥字符串

时间:2018-12-29 15:00:11

标签: firebase google-cloud-functions

我试图在这样的Firebase函数中设置环境变量:

firebase functions:config:set clientsecret="abc123$efgh"

但是,当我使用时:

firebase functions:config:get

我正在查看所有设置,但是看来clientsecret字符后面的$值已被截断。

{
    "myservice": {
        "clientid: "1234567"
        "clientsecret": "abc123"
     }
}

有没有一种方法应该对$进行转义或编码,以便存储整个字符串?谢谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

问题不是Firebase或Cloud Functions。问题是$字符。这是一个特殊的shell字符,该字符后接字母并假定它是shell变量。因此,您的命令告诉外壳程序您要将变量efgh的值插入命令行。由于该变量可能未定义,因此您将获得一个空字符串。因此,$efgh产生一个空字符串。

如果要在这样的shell命令行中使用$,则必须对其进行转义。有a lot to know about this。也许最简单的事情就是简单地用反斜杠转义$本身:

firebase functions:config:set clientsecret="abc123\$efgh"