🔥 Firestore 手動設定

テストアカウント作成 - 詳細手順

リハビリモニタリングアプリ用

📋 前提条件

ℹ️ 事前準備
  • Firebase Console でプロジェクトを開いている
  • Authentication でユーザーを作成済み
  • ユーザーのUID(User ID)をメモしている

📝 UID(User ID)の確認方法

  1. Firebase Console を開く
    https://console.firebase.google.com/
  2. Authentication → Users タブ
    左メニューから「Authentication」をクリック
    上部の「Users」タブを選択
  3. ユーザー一覧を確認
    作成したユーザー(例: patient@test.com)の行が表示される
  4. UIDをコピー
    ユーザーの行にある「User UID」の値をコピー
    例: abc123def456ghi789...

🔥 手順1: Firestoreの準備

Firestoreが未作成の場合

  1. Firestore Database を開く
    Firebase Console 左メニュー → 「Firestore Database」をクリック
  2. Create database ボタンをクリック
    画面中央の「Create database」ボタンをクリック
  3. ロケーション選択
    推奨 asia-northeast1 (Tokyo)
    「Next」をクリック
  4. セキュリティルール選択
    開発用 Start in test mode
    「Enable」をクリック
⚠️ セキュリティルールについて

「Start in test mode」は誰でもデータを読み書きできる状態です。開発・テスト専用です。本番運用時は必ずセキュリティルールを設定してください。

🗂️ 手順2: usersコレクション作成

2-1. コレクション作成

  1. Start collection ボタンをクリック
    Firestoreの画面で「+ Start collection」ボタンをクリック
  2. Collection ID を入力
    ポップアップが表示される
┌────────────────────────────┐
│ Start a collection         │
├────────────────────────────┤
│ Collection ID              │
│ ┌────────────────────────┐ │
│ │ users                  │ │ ← ここに「users」と入力
│ └────────────────────────┘ │
│                            │
│ [Cancel]  [Next]           │
└────────────────────────────┘
  1. 「users」と入力して Next
    Collection ID に users と入力
    「Next」ボタンをクリック

👤 手順3: 患者ドキュメント作成

3-1. ドキュメントID入力

✅ 重要

Document ID には、Authenticationでメモした患者のUIDを入力します。

┌────────────────────────────────────┐
│ Add its first document             │
├────────────────────────────────────┤
│ Document ID                        │
│ ┌────────────────────────────────┐ │
│ │ [患者のUIDを貼り付け]         │ │ ← AuthenticationのUIDをコピペ
│ └────────────────────────────────┘ │
└────────────────────────────────────┘

3-2. フィールド追加(患者用)

以下の順番で1つずつフィールドを追加します。「+ Add field」をクリックするごとに新しい行が追加されます。

順番 Field(フィールド名) Type(型) Value(値)
name string テスト患者
email string patient@test.com
age number 65
role string patient
therapistId string (空欄のまま)
dailyGoal number 8000
createdAt timestamp (自動入力される)
updatedAt timestamp (自動入力される)
⚠️ Type(型)の選択に注意
  • age, dailyGoalnumber
  • createdAt, updatedAttimestamp
  • その他 → string

3-3. 詳細な入力手順

  1. ① name フィールド
    Field: name
    Type: string(デフォルト)
    Value: テスト患者
  2. 「+ Add field」をクリック
    新しい行が追加される
  3. ② email フィールド
    Field: email
    Type: string
    Value: patient@test.com
  4. 「+ Add field」をクリック
  5. ③ age フィールド
    Field: age
    Type: number ← プルダウンで選択
    Value: 65
  6. ④〜⑧ も同様に追加
    上記の表を参照して、すべてのフィールドを追加
  7. Save ボタンをクリック
    画面下部の「Save」ボタンをクリック
✅ 完了

患者ドキュメントが作成されました。Firestoreの画面に戻り、usersコレクション内に1件のドキュメントが表示されます。

👨‍⚕️ 手順4: セラピストドキュメント作成

4-1. 新しいドキュメント追加

  1. Add document をクリック
    Firestore画面の users コレクション内で「+ Add document」をクリック
  2. Document ID を入力
    AuthenticationでメモしたセラピストのUIDを貼り付け

4-2. フィールド追加(セラピスト用)

順番 Field(フィールド名) Type(型) Value(値)
name string テストセラピスト
email string therapist@test.com
age number 35
role string therapist
createdAt timestamp (自動入力される)
updatedAt timestamp (自動入力される)
⚠️ role フィールドは完全一致必須

role の値は therapist正確に入力してください。

  • ❌ Therapist(大文字)
  • ❌ "therapist"(引用符付き)
  • ✅ therapist(小文字、引用符なし)
  1. 上記の表に従ってフィールドを追加
    「+ Add field」を使って1つずつ追加
  2. Save ボタンをクリック
    すべてのフィールドを入力したら保存

✅ 完成イメージ

Firestoreの users コレクションに以下のように2つのドキュメントが表示されます:

users (コレクション) ├── abc123def456... (患者のUID) │ ├── name: "テスト患者" │ ├── email: "patient@test.com" │ ├── age: 65 │ ├── role: "patient" │ ├── therapistId: "" │ ├── dailyGoal: 8000 │ ├── createdAt: [Timestamp] │ └── updatedAt: [Timestamp] │ └── xyz789ghi012... (セラピストのUID) ├── name: "テストセラピスト" ├── email: "therapist@test.com" ├── age: 35 ├── role: "therapist" ├── createdAt: [Timestamp] └── updatedAt: [Timestamp]

🔍 確認方法

Firestore で確認

  1. Firebase Console → Firestore Database
    左メニューから「Firestore Database」を開く
  2. users コレクションを展開
    2つのドキュメント(患者とセラピスト)が表示される
  3. 各ドキュメントをクリック
    フィールドの内容を確認

アプリでログインテスト

📱 患者アプリ
cd C:\Users\kawag\work\rehab_monitoring_project C:\flutter\bin\flutter.bat run -d chrome

Email: patient@test.com
Password: Patient123!

👨‍⚕️ セラピストアプリ
cd C:\Users\kawag\work\rehab_monitoring_project C:\flutter\bin\flutter.bat run -d chrome --target=lib/main_therapist.dart

Email: therapist@test.com
Password: Therapist123!

❌ よくあるエラー

エラー1: "Permission denied"

原因

Firestoreのセキュリティルールが厳しすぎる

解決策
  1. Firestore → 「Rules」タブを開く
  2. 以下のルールに変更(テスト用):
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth != null; } } }
  1. 「Publish」ボタンをクリック

エラー2: "User not found"

原因

FirestoreのDocument IDとAuthenticationのUIDが一致していない

解決策
  • FirestoreのDocument IDがAuthenticationのUIDと完全一致しているか確認
  • UIDをコピペする際にスペースが入っていないか確認
  • 前後に余計な文字がないか確認

エラー3: roleフィールドが効いていない

原因

roleの値が正確でない(大文字小文字、スペース、引用符など)

解決策
  • patient または therapist完全一致させる
  • すべて小文字で入力
  • 前後にスペースが入っていないか確認
  • 引用符(" や ')を付けない