|
| 1 | +# ゲストサイト(viewer)デプロイ方法 |
| 2 | + |
| 3 | +## 概要 |
| 4 | + |
| 5 | +このドキュメントでは、Firebase Hostingのマルチサイト機能を使用して、viewerアプリを別のサイトとしてデプロイする方法を説明します。 |
| 6 | + |
| 7 | +## 前提条件 |
| 8 | + |
| 9 | +- Firebase CLIがインストールされている |
| 10 | +- Firebaseプロジェクト(animeishi-73560)にアクセス権限がある |
| 11 | +- Flutterアプリが既にメインサイトにデプロイされている |
| 12 | + |
| 13 | +## デプロイ手順 |
| 14 | + |
| 15 | +### 1. Firebase側の設定 |
| 16 | + |
| 17 | +#### 1.1 新しいサイトの作成 |
| 18 | + |
| 19 | +1. **Firebase Console**にアクセス |
| 20 | +2. **Hosting**ページに移動 |
| 21 | +3. **「別のサイトを追加」**ボタンをクリック |
| 22 | +4. サイトIDを入力:`animeishi-viewer` |
| 23 | +5. **「サイトを追加」**をクリック |
| 24 | + |
| 25 | +#### 1.2 認証済みドメインの追加(必要に応じて) |
| 26 | + |
| 27 | +1. **Authentication** → **Settings** → **Authorized domains** |
| 28 | +2. **「ドメインを追加」**をクリック |
| 29 | +3. `animeishi-viewer.web.app`を追加 |
| 30 | + |
| 31 | +### 2. ローカル環境での設定 |
| 32 | + |
| 33 | +#### 2.1 viewerディレクトリに移動 |
| 34 | + |
| 35 | +```bash |
| 36 | +cd viewer |
| 37 | +``` |
| 38 | + |
| 39 | +#### 2.2 Firebase初期化 |
| 40 | + |
| 41 | +```bash |
| 42 | +firebase init hosting |
| 43 | +``` |
| 44 | + |
| 45 | +設定内容: |
| 46 | +- **Public directory**: `public` |
| 47 | +- **Single-page app**: `No` |
| 48 | +- **GitHub自動デプロイ**: `No` |
| 49 | +- **既存ファイルの上書き**: `N`(既存のindex.htmlを保持) |
| 50 | + |
| 51 | +#### 2.3 ターゲット設定 |
| 52 | + |
| 53 | +```bash |
| 54 | +firebase target:apply hosting viewer-site animeishi-viewer |
| 55 | +``` |
| 56 | + |
| 57 | +#### 2.4 firebase.jsonの設定 |
| 58 | + |
| 59 | +```json |
| 60 | +{ |
| 61 | + "hosting": { |
| 62 | + "target": "viewer-site", |
| 63 | + "public": "public", |
| 64 | + "ignore": [ |
| 65 | + "firebase.json", |
| 66 | + "**/.*", |
| 67 | + "**/node_modules/**" |
| 68 | + ], |
| 69 | + "rewrites": [ |
| 70 | + { |
| 71 | + "source": "/user/**", |
| 72 | + "destination": "/user.html" |
| 73 | + } |
| 74 | + ] |
| 75 | + } |
| 76 | +} |
| 77 | +``` |
| 78 | + |
| 79 | +#### 2.5 .firebasercの確認 |
| 80 | + |
| 81 | +```json |
| 82 | +{ |
| 83 | + "projects": { |
| 84 | + "default": "animeishi-73560" |
| 85 | + }, |
| 86 | + "targets": { |
| 87 | + "animeishi-73560": { |
| 88 | + "hosting": { |
| 89 | + "viewer-site": [ |
| 90 | + "animeishi-viewer" |
| 91 | + ] |
| 92 | + } |
| 93 | + } |
| 94 | + } |
| 95 | +} |
| 96 | +``` |
| 97 | + |
| 98 | +### 3. デプロイ |
| 99 | + |
| 100 | +#### 3.1 viewerサイトのデプロイ |
| 101 | + |
| 102 | +```bash |
| 103 | +firebase deploy --only hosting:viewer-site |
| 104 | +``` |
| 105 | + |
| 106 | +#### 3.2 デプロイ確認 |
| 107 | + |
| 108 | +- **URL**: `https://animeishi-viewer.web.app` |
| 109 | +- Firebase Consoleでデプロイ履歴を確認 |
| 110 | + |
| 111 | +### 4. Flutterアプリの設定更新 |
| 112 | + |
| 113 | +#### 4.1 QRコードURLの更新 |
| 114 | + |
| 115 | +`lib/ui/home/view/home_page.dart`を編集: |
| 116 | + |
| 117 | +```dart |
| 118 | +final String qrData = user?.uid != null |
| 119 | + ? "https://animeishi-viewer.web.app/user/${user!.uid}" |
| 120 | + : "No UID"; |
| 121 | +``` |
| 122 | + |
| 123 | +#### 4.2 Flutterアプリの再デプロイ |
| 124 | + |
| 125 | +```bash |
| 126 | +flutter build web |
| 127 | +firebase deploy --only hosting |
| 128 | +``` |
| 129 | + |
| 130 | +## サイト構成 |
| 131 | + |
| 132 | +### メインサイト(Flutterアプリ) |
| 133 | +- **URL**: `https://animeishi-73560.web.app` |
| 134 | +- **用途**: アプリのメイン機能 |
| 135 | +- **デプロイ先**: プロジェクトのルート |
| 136 | + |
| 137 | +### ゲストサイト(viewerアプリ) |
| 138 | +- **URL**: `https://animeishi-viewer.web.app` |
| 139 | +- **用途**: ユーザーの視聴履歴表示 |
| 140 | +- **デプロイ先**: `viewer`ディレクトリ |
| 141 | + |
| 142 | +## トラブルシューティング |
| 143 | + |
| 144 | +### よくある問題 |
| 145 | + |
| 146 | +#### 1. デプロイエラー |
| 147 | + |
| 148 | +```bash |
| 149 | +# ログイン確認 |
| 150 | +firebase login |
| 151 | + |
| 152 | +# プロジェクト確認 |
| 153 | +firebase projects:list |
| 154 | + |
| 155 | +# ターゲット確認 |
| 156 | +firebase target |
| 157 | +``` |
| 158 | + |
| 159 | +#### 2. ファイルが見つからない |
| 160 | + |
| 161 | +```bash |
| 162 | +# ファイル構造確認 |
| 163 | +ls -la public/ |
| 164 | + |
| 165 | +# 必要なファイルの存在確認 |
| 166 | +ls -la public/index.html |
| 167 | +ls -la public/assets/js/ |
| 168 | +``` |
| 169 | + |
| 170 | +#### 3. Firebase初期化エラー |
| 171 | + |
| 172 | +```bash |
| 173 | +# 設定ファイルの確認 |
| 174 | +cat firebase.json |
| 175 | +cat .firebaserc |
| 176 | + |
| 177 | +# 必要に応じて再初期化 |
| 178 | +firebase init hosting |
| 179 | +``` |
| 180 | + |
| 181 | +### デバッグ方法 |
| 182 | + |
| 183 | +#### 1. ローカルテスト |
| 184 | + |
| 185 | +```bash |
| 186 | +# ローカルサーバー起動 |
| 187 | +firebase serve --only hosting:viewer-site |
| 188 | + |
| 189 | +# ブラウザで確認 |
| 190 | +# http://localhost:5000 |
| 191 | +``` |
| 192 | + |
| 193 | +#### 2. ログ確認 |
| 194 | + |
| 195 | +```bash |
| 196 | +# デプロイログの詳細表示 |
| 197 | +firebase deploy --only hosting:viewer-site --debug |
| 198 | +``` |
| 199 | + |
| 200 | +## メンテナンス |
| 201 | + |
| 202 | +### 定期的な作業 |
| 203 | + |
| 204 | +1. **セキュリティ更新**: Firebase SDKの更新 |
| 205 | +2. **パフォーマンス監視**: ページ読み込み速度の確認 |
| 206 | +3. **エラー監視**: ブラウザコンソールでのエラー確認 |
| 207 | + |
| 208 | +### 更新手順 |
| 209 | + |
| 210 | +1. **コード変更** |
| 211 | +2. **ローカルテスト** |
| 212 | +3. **デプロイ** |
| 213 | +4. **動作確認** |
| 214 | + |
| 215 | +## 参考リンク |
| 216 | + |
| 217 | +- [Firebase Hosting マルチサイト](https://firebase.google.com/docs/hosting/multisites?hl=ja) |
| 218 | +- [Firebase CLI リファレンス](https://firebase.google.com/docs/cli?hl=ja) |
| 219 | +- [Firebase Hosting クイックスタート](https://firebase.google.com/docs/hosting/quickstart?hl=ja) |
| 220 | + |
| 221 | +## 更新履歴 |
| 222 | + |
| 223 | +- 2025/08/16: 初版作成 |
| 224 | +- マルチサイト機能を使用したviewerアプリのデプロイ方法を追加 |
0 commit comments