HTTPクラウド関数を使用してリクエストをリッスンし、簡単なメッセージを返します。
私はローカルでクラウド機能を開発しています:
firebase serve --only functions
私はいくつかのカスタム環境変数を使用してセットアップしました
firebase functions:config:set
以下のコードを使用してカスタム構成変数にアクセスすると、プロジェクトがデプロイされたときに正常に機能します
functions.config()
ただし、ローカルで開発する場合は機能しません。ヒットして機能がトリガーされた場合: http:// localhost:5002/my-project-name/us-central1/functionName カスタム構成変数にアクセスできません。 functions.config()をローカルで使用すると、カスタム構成変数ではなくデフォルト構成が表示されます
ローカルで作業する場合、環境変数の代替ソリューションまたはベストプラクティスはありますか?
現在のところ、このコマンドを実行して手動で.runtimeconfig.json
ファイルを作成する必要があります関数ディレクトリ内。次に、serveコマンドを実行します。
firebase functions:config:get > .runtimeconfig.json
Windows Powershellを使用している場合、上記を次のように置き換えます。
firebase functions:config:get | ac .runtimeconfig.json
詳細については https://firebase.google.com/docs/functions/local-emulator をご覧ください。
環境変数(process.env)を使用する場合は、この回避策に従います。
デプロイする前に設定値を設定します
firebase functions:config:set envs.db_Host=$DB_Host_PROD envs.db_user=$DB_USER_PROD envs.db_password=$DB_PASSWORD_PROD envs.db_name=$DB_NAME_PROD envs.db_use_ssl=false
構成を読み取り、関数コードの下で最初にenv変数を更新します。
const functions = require('firebase-functions');
const config = functions.config();
// Porting envs from firebase config
for (const key in config.envs){
process.env[key.toUpperCase()] = config.envs[key];
}