よくある質問とトラブルシューティング

このページでは、よくある質問(FAQ)に関する回答を紹介します App Hosting

App Hosting に関するよくある質問

一般的な App Hosting の制限事項とトラブルシューティング

  • Cloud Run インフラストラクチャの問題により、us-central1 などの一部のリージョンでは、リソースの作成または更新に時間がかかることがあります。Cloud Run特定のリージョンでデプロイのレイテンシが問題になる場合は、別のリージョンにデプロイすることをおすすめします。
  • App Hosting の CDN は、キャッシュキーに 特定のリクエスト ヘッダーのセットのみを含めることができます。このリストには、NextJS の RSCNext-Router-State-TreeNext-Router-PrefetchNext-Router-Segment-PrefetchNext-Url ヘッダーと、Cloud CDN の標準の AcceptAccept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodOriginSec-Fetch-DestSec-Fetch-ModeSec-Fetch-SiteX-Goog-Allowed-ResourcesX-Origin が含まれます。レスポンスに、ここに記載されていない値を持つ Vary ヘッダーが含まれている場合、CDN はレスポンスをキャッシュに保存しません。
  • キャッシュに保存されていない静的ファイルは Cloud Run から配信されます。 今後のリリースでは、パフォーマンスを向上させるために、App Hosting オリジン に保存して配信されます。
  • Firebase コンソールで、バックエンドの作成時に「ビルドが見つからず、 無効です」というエラーが断続的に表示されることがあります。
  • 同じプロジェクト内のすべてのバックエンドで、GitHub の組織またはアカウントが共有されます。 これらのバックエンドは、その組織またはアカウントの異なるリポジトリに接続できます。 異なる GitHub アカウントに接続されたバックエンドを作成するには、別々のプロジェクトに配置します。

Angular アプリの制限事項とトラブルシューティング

Angular の App Hosting サポートは積極的に開発されており、 拡大していますが、次の制限があります。

  • I18n: コアの I18n 機能は動作しますが、SSR ページに直接移動するとエラーが発生することがあります。
  • ローカライズ: さまざまなロケールのバージョンをビルドすることはできません。
  • ビルダー: 現在サポートされているのは Application ビルダーのみです。
  • 環境とモノレポ ツール: 複数のアプリケーション ターゲットを持つ Angular プロジェクトは失敗します。モノレポのサポートを強化するには、 Nx を使用します。

Angular SSR での HTTP 400 エラーとプロキシの信頼

Firebase App Hosting にデプロイされた Angular アプリケーションで HTTP 400(Bad Request)エラー、ホスト検証ブロッカー、プロキシの信頼 エラーが発生した場合は、Angular バージョンに応じた推奨される解決策をお試しください。

  • Angular v19、v20、v21: これらの HTTP 400 エラー を解決するには、次の 2 つの方法があります:
    • 依存関係をアップグレードする: npm update @angular/core @angular/ssr を実行して、現在の Angular バージョンの最新のパッチリリースをインストールします。
    • 手動構成: サーバー構成で trustProxyHeaders: trueを設定して、コードレベルの構成フォールバックを適用します(Angular ドキュメントの 信頼できるプロキシ ヘッダーの構成をご覧ください)。
  • Angular v22: 新しいバックエンドでの最初のビルドで 400 エラーが返されることがあります。 この問題を解決するには、2 回目のビルドを生成します。以降のビルドはすべて意図したとおりに動作します。

Next.js の制限事項とトラブルシューティング

  • デフォルトでは、組み込みの NextJS 画像最適化 は、images.unoptimized を明示的に false に設定するか、カスタムの Image Loader を使用しない限り、App Hosting で無効になっています。Next.js での画像読み込みを最適化するをご覧ください
  • パーセント エンコードされた文字を含む URL パスは、 Cloud Runによってデコードされます。これにより、Next.js の並列ルーティングなど、エンコードされた URL パスのみを想定する機能で問題が発生する可能性があります。
  • 現在、App Hosting では、NextJS アプリのキャッシュを 使用してミドルウェアを制限しています。 時間の経過とともに、キャッシュヒット率が向上するはずです。
  • パーセント エンコードされた文字を含む URL パスは、Cloud Run によってデコードされます。 これにより、エンコードされた URL パスのみを想定する機能で問題が発生する可能性があります。たとえば、 Next.js の並列ルーティングなどです。