#firebase
YouTubeの「Firebase Release Notes」プレイリスト
最新のアップデートの概要を把握するのにちょうど良い
Nuxt.jsのservice workerで環境変数を切り替えられるようにする
設定情報をハードコードしたくなかったので、ビルド時にnodeコマンドでファイル生成を行い環境変数を切り替えられるように対応した。
CloudFunctionsを使ってFirestoreのサブコレクションを削除する
CloudFunctions内でFirebase CLIのdeleteコマンドを呼び出すことで一括削除ができる
Firebase Hostingのリリース履歴を一括削除する
いつの間にか一括削除機能が追加されていた
Firebase HostingでCache-Controlヘッダーを設定する
firebase.jsonに追記する
Firebase Hostingで動いているNuxt.jsプロジェクトにAnalyticsを導入する
gaメソッドをinjectするようにした
GCPの課金上限緩和申請をした
50ドル分の料金を事前支払いする必要があった
Github ActionでfirebaseプロジェクトをS3にデプロイする
deploymentブランチにpushしたら自動でs3にデプロイできるようになった
Google Domainsで取得したドメインをFirebase Hostingのカスタムドメインに設定する
ルートドメインをカスタムドメインに設定する場合、リソースレコードは「@」を指定する
Next.js on firebase Hostingの静的サイトで404ページをカスタマイズする
page/404.tsxではなくpage/_error.tsxを記述する必要があった
Firebase Hostingのキャッシュ設定をする
firebase.jsonに追記することで手軽にキャッシュ設定ができる
Next.jsでFirebase Local Emulatorを使う
NEXT_PUBLIC_USE_FIREBASE_EMULATORを設定して切り替えた
Firebase Functionsを呼び出す際にregion指定するとEmulatorではなく本番に接続してしまう
Emulator環境ではregionを指定しないようにした
Next.js + Firebase Functionsが同居するリポジトリでnext buildを実行するとエラーが発生
Type error: Cannot find module 'xxx' or its corresponding type declarations.
Cloud Firestoreのbatchを使って一括書き込み
いいね及びいいね削除の際に、2つのサブコレクションに書き込みを行う必要があったのでbatchを利用した
Firebase AuthのLocal EmulatorはAuthProviderに応じて適切なダミーユーザを生成してくれる
エミュレータのおかげでローカル開発がとてもやりやすくなった
Firebase Local Emulatorでfunctions:config:setによる環境変数を利用したい場合
.runtimeconfig.jsonを使用する
firebase hostingで301リダイレクト設定を行う
旧ブログから新ブログへリダイレクト
Firebase公式Github ActionsでPull RequestごとにHostingのプレビュー環境を作る
手軽にプレビュー環境で動作確認できるようになったので、継続的なアップデートがやりやすくなった
FirebaseRTCを試す
300行程のコードで二者間ビデオチャット機能が作れるのはすごい
「Unit testing security rules with the Firebase Emulator Suite」でセキュリティルールのtestを学ぶ
ローカルでセキュリティルールのtestができるようになったのはありがたい
Local Emulator Suiteを使ってFirestoreのローカル開発を行う際に初期データ(seeds)を用意する
ローカル管理画面でDeveloperToolsを開くとwindow.firestoreが使える
JestでFirestoreセキュリティルールのテストを書く
Github ActionsでCIを回せるようになった