首页 > 解决方案 > Firebase 函数配置正在截断我的 api 密钥字符串

问题描述

我正在尝试在 firebase 函数中设置一个环境变量,如下所示:

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

但是,当我使用:

firebase functions:config:get

我看到了我的所有设置,但看起来我的clientsecret值在角色之后被截断了$

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

有没有办法我应该转义或编码,$以便存储整个字符串?感谢您的任何建议!

标签: firebasegoogle-cloud-functions

解决方案


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

如果你想在这样的 shell 命令行中使用 $,你将不得不转义它。有很多关于这方面的知识。也许最简单的事情是简单地用反斜杠转义 $ 本身:

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

推荐阅读