在firebase中设置环境配置时,警告,FIREBASE_CONFIG和GCLOUD_PROJECT环境变量丢失

时间:2020-07-13 07:00:05

标签: node.js firebase environment-variables api-key

我试图通过在firebase中设置环境配置将api密钥存储为环境变量。 这是参考文献https://firebase.google.com/docs/functions/config-env
我重新部署了节点8中的函数,并且在运行firebase functions:config:get时可以看到输出的JSON api键。

"myservice":{
  "key": "******",
  "id": "******"
} 

但是,当我运行我的应用程序(TypeScript)并尝试测试是否可以获取我的apikey时:

import * as admin from "firebase-admin";
import * as functions from "firebase-functions";
import "firebase-functions"; 
admin.initializeApp();
const key = functions.config().myservice.key;
console.log(key);

我知道了

Warning, FIREBASE_CONFIG and GCLOUD_PROJECT environment variables are missing. Initializing firebase-admin will fail   
TypeError: Cannot read property 'key' of undefined 

并且在控制台中看不到密钥

有人有同样的问题吗? 任何人都可以提出一些解决此问题的提示。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您正在运行 Firebase 模拟器,则需要将环境变量存储在本地,如 here 所述。

firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json
firebase functions:shell

使用 firebase functions:config:set 从 cli 设置环境变量后,您可能还需要根据 cli 命令的输出发布它们:

Please deploy your functions for the change to take effect by running firebase deploy --only functions

如果您将此作为单元测试运行,您可以使用 firebase-functions-test 库来设置环境变量:

const testEnv = functions(
  {
    projectId: "your-project-id",
  },
  "./<PATH-TO-SERVICE-ACCOUNT-KEY"
);

// Provide environment variables
testEnv.mockConfig({ someapi: { key: "abc123" } });