【发布时间】:2020-05-27 20:10:49
【问题描述】:
我正在使用 google 服务 api 密钥在 nodejs 中创建一个 web 服务,并且在开发阶段我已经将文件放在本地并像这样进行测试......一切都很好。
现在我必须在 firebase 中进行部署,并且必须使配置文件不可见。 你有经验如何使用 .env 文件来做这个吗?
配置文件是这样的:
{
"type": "service_account",
"project_id": "xxxx-eeee",
"private_key_id": "xxxw342234",
"private_key": "-----BEGIN PRIVATE KEY-----client_id": "xxxxxxxxxxxx",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxxxxxxxxxx.iam.gserviceaccount.com"
}
现在我使用此代码访问文件:
const translate = new Translate(
{
projectId: 'my-project-0o0o0o0o'
keyFilename: './my-project.json
}
);
谁能帮助我完成访问该文件的步骤,而无需在 github 然后在 firebase 中发布凭据
2020 年 2 月 13 日更新
我创建了 .env 文件来存储我的凭据,如下所示:
SEPA_TRANSLATE_PROJECT_ID="4354-4545"
SEPA_TRANSLATE_GOOGLE_API_KEY_TYPE="service_account"
SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_PRIVATE_KEY_ID="43434"
SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nMM=\n-----END PRIVATE KEY-----\n"
SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_CLIENT_EMAIL="googletranslateaaaaapi@aaaaa-aaaa.iam.gserviceaccount.com"
SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_CLIENT_ID="34234"
SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_AUTH_URI="https://accounts.google.com/o/oauth2/auth"
SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_TOKEN_URI="https://oauth2.googleapis.com/token"
SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_AUTH_PROVIDER_X509_CERT_URL="https://www.googleapis.com/oauth2/v1/certs"
SEPA_TRANSLATE_GOOGLE_SERVICE_CLIENT_X509_CERT_URL="https://www.googleapis.com/robot/v1/metadata/x509/googletranslatewerwer%erwerwre-werwr.iam.gserviceaccount.com"
现在 my-project.json 文件看起来像:
{
"type": process.env.SEPA_TRANSLATE_GOOGLE_API_KEY_TYPE,
"project_id": process.env.SEPA_TRANSLATE_PROJECT_ID,
"private_key_id": process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_PRIVATE_KEY_ID,
"private_key": process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_PRIVATE_KEY
"client_email": process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_CLIENT_EMAIL,
"client_id": process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_CLIENT_ID,
"auth_uri": process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_AUTH_URI,
"token_uri": process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_TOKEN_URI,
"auth_provider_x509_cert_url":process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_KEY_AUTH_PROVIDER_X509_CERT_URL,
"client_x509_cert_url": process.env.SEPA_TRANSLATE_GOOGLE_SERVICE_CLIENT_X509_CERT_URL
}
这个 json 被称为:
const translate = new Translate(
{
projectId: 'my-project-0o0o0o0o'
keyFilename: './my-project.json
}
);
当我测试我的 api 时,我现在收到此错误消息:错误翻译文本:SyntaxError: Unexpected token p in JSON at position 13
【问题讨论】:
标签: firebase github environment-variables google-cloud-functions