星期二, 2月 11, 2020

Firebase functions 裡用 Admin SDK 時,怎麼去把設定跟程式切開?

一般來說,照文件來做,會要放兩個設定,第一個是 Service account credential,第二個是 Firebase config。
但其實在部署 functions 上去以後,這些設定都已經在執行環境裡了,所以不需要特別去放這些設定。而且,把這些設定放到程式裡,那程式會上到 git repository 啊,這樣設定就都曝光了。那不想把這些設定放到程式裡,本地端又要開發時該怎麼辦呢?我是找到這篇:Firebase: Separating configuration from code in Admin SDK
第一個,Service account credential 在下載以後,假設放到 /credentials/your_service_account.json,那麼在執行前,把這檔案路徑指定到 GOOGLE_APPLICATION_CREDENTIALS 這環境變數就可以,例如:
export GOOGLE_APPLICATION_CREDENTIALS=/credentials/your_servcice_account.json
第二個是 Firebase config,從 firebase console 取得以後,假設放到 /config/your_project_config.json ,裡面內容大致是
{
   apiKey: "your_api_key",
   authDomain: "your_project.firebaseapp.com",
   databaseURL: "https://your_project.firebaseio.com",
   projectId: "your_project-abcdef",
   storageBucket: "your_project.appspot.com",
   messagingSenderId: "00000000",
   appId: "1:00000000:web:000000000",
   measurementId: "G-11111111"
 };
接著一樣去設定環境變數 FIREBASE_CONFIG
export FIREBASE_CONFIG=/config/your_project_config.json
然後就可以使用 firebase serve 去模擬啦。

沒有留言: