こんにちは。virapture株式会社でCEOしながらラグナロク株式会社でもCKOとして働いているもぐめっとです。
本日は便利コマンドのメモ的な共有です。
便利コマンドの紹介
早速結論から紹介します。
こんな感じで簡単に環境変数をセットできます。
cat .runtimeconfig.json | jq -r "to_entries[]| [.key, (.value | tojson)] | join(\"='\")" | sed -e "s/}$/}'/" | xargs firebase -P dev functions:config:set
変数の内容に空白があっても設定できるようにしています!頑張った!
なぜワンライナーでセットしたいか
2点理由があります。
1. エミュレーターと環境を同期したい
.runtimeconfig.jsonというファイルをfunctionsディレクトリに置いておくとemulatorで起動した時に環境変数を自動で設定してくれます。
基本的にはこのファイルで環境変数を管理していて、変更があった時にでもワンライナーコマンドを毎回設定することで自動的に環境変数を設定できるようにしたいんです。
2. キャメルケースで変数を扱いたい
本来cloud functionsのfunctions:config:setは、変数名にスネークケースを設定しないと設定してくれません。
しかし便利コマンドでやるとキャメルケースの変数名でも設定できちゃうのでプログラム的には命名統一できていい感じです。
ちなみにparser.jsを書いてる人もいるが、これを使うとスネークケースでないとエラーになったりします。
まとめ
CIでも使えるようにワンライナーで設定できるコマンドの紹介でした!
ちなみにシークレット情報にあたるものだったら環境変数じゃなくてSecret Managerを使うようにした方がいいです。
最後に、ワンナイト人狼オンラインというゲームを作ってます!よかったら遊んでね!
他にもCameconやOffcha、問い合わせ対応が簡単にできるCSmartといったサービスも作ってるのでよかったら使ってね!
また、チームビルディングや技術顧問、Firebaseの設計やアドバイスといったお話も受け付けてますので御用の方は弊社までお問い合わせください。
ラグナロクでもエンジニアやデザイナーのメンバーを募集しています!!楽しくぶち上げたい人はぜひお話ししましょう!!