我有一个使用google translate api翻译文本的云功能。它利用了这段代码:
const functions = require('firebase-functions');
function createTranslateUrl(lang, text) {
return `https://www.googleapis.com/language/translate/v2?key=${functions.config().firebase.apiKey}&source=en&target=${lang}&q=${text}`;
}
问题出在functions.config().firebase.apiKey
部分。有一段时间它工作正常,但突然它开始返回undefined
。
以下是配置现在的样子:
config { firebase:
{ projectId: 'projectname',
databaseURL: 'https://projectname.firebaseio.com',
storageBucket: 'projectname.appspot.com',
credential: ApplicationDefaultCredential { credential_: MetadataServiceCredential {} } } }
我硬编码apiKey从firebase控制台复制它,它现在可以正常工作。
我的问题是使用硬编码的api密钥是否安全?什么可能导致functions.config().firebase.apiKey
返回undefined?
答案 0 :(得分:0)
运气好吗?我在functions.config().firebase.apiKey
返回undefined
时遇到完全相同的问题。
这是在我昨天部署之后开始发生的。我确实检查了firebase release notes,但没有任何与配置相关的内容。
更新:事实证明我们使用旧版firebase-functions
。升级到最新版本(0.9.1
)修复了问题。
答案 1 :(得分:0)
firebase.apiKey
已从functions.config()
请参阅github https://github.com/firebase/firebase-functions/issues/196
上的此问题