雑多ですが
firebaseのコンフィギュレーション
firebase.json
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
],
"source": "functions"
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"storage": {
"rules": "storage.rules"
}
}
各、firebaseサービスの設定キーに対して、リソースファイルをセットすると、対応するコマンドでリソースの設定情報でデプロイが出来る。(rules,indexesなど)
本番環境でのデプロイ先誤認を防ぐため、productionだった時に、プロンプト入力を求めるバッチを入れることを推奨。
.firebaserc
{
"projects": {
"default": "sample-proj",
"development": "sample-proj",
"staging": "sample-proj-staging",
"production": "sample-proj-production"
}
}
firebase useコマンドで操作対象のfirebaseプロジェクトの切り替えができる。
keyはalias(例: firebase use development)
###基本
functionsを全てデプロイ
firebase deploy --only functions
functionsを単体でデプロイ
firebase deploy --only functions:${functionName}
消すとき
消したいfunctionをexportを消した状態でデプロイコマンド
おすすめはコメントアウトしてデプロイ
// export const onRegisterUser ...
firebase deploy --only functions
indexをlocalにexportしたい
firebase firestore:indexes > $filepath
indexまたはrulesをデプロイしたい
firebase deploy --only $serviceName:(rules or indexes)
例) firebase deploy --only firestore:rules
functionsの環境変数のget
firebase functions:config:get [keyName]
functionsの環境変数のset
firebase functions:config:set $keyName=$value