自分の Firebase プロジェクトを使う
要点「バックエンド → クラウド」の Firebase コネクタに、Firebase のサービスアカウントのキーファイルを貼り付けます。MonstarX が Google で確認すると、アプリで Firestore、Firebase のサインイン、Cloud Storage、プッシュメッセージ、Realtime Database を使えるようになります。Firestore をアプリのメインのデータ保存先にして、既存のテーブルをコピーすることもできます。
Firebase は、Google が提供するアプリ向けサービスのセットです。Firestore というドキュメントデータベース、サインイン、ファイルストレージ、プッシュ通知などがあります。すでに Firebase プロジェクトを持っているなら(既存のスマートフォンアプリで使っているなど)、それを MonstarX のアプリに接続して、これらのサービスを使えます。
Firebase を1つの用途だけ(たとえばスマートフォンアプリの利用者へのプッシュ通知)に使うこともできますし、Firestore をアプリのデータベースにして、Web アプリとほかのアプリで同じデータを共有することもできます。
- Firebase プロジェクトと、Firebase コンソールでその設定を開ける権限。
- Firebase Authentication でサインインしてもらう場合は、その Firebase プロジェクトに追加したウェブアプリ。
Firebase を接続するには?
Section titled “Firebase を接続するには?”-
Firebase コンソールで プロジェクトの設定 → サービス アカウント(Project settings → Service accounts)を開き、新しい秘密鍵を生成(Generate new private key)をクリックします。JSON ファイルがダウンロードされます。
-
MonstarX でプロジェクトを開き、上部のバーで バックエンド をクリックし、続けて クラウド をクリックします。
-
コネクタ で Firebase の横の 接続する をクリックします。
-
JSON ファイルをテキストエディタで開いてすべてコピーし、サービスアカウントのキーファイル に貼り付けます。MonstarX がそこからプロジェクトの ID を読み取ります。
-
任意の欄は、必要な場合だけ入力します。
- ウェブ API キー — プロジェクトの設定 → 全般 → マイアプリ → ウェブアプリ → apiKey にあります。Firebase Authentication でサインインしてもらう場合にだけ必要です。
- ストレージバケット — ファイルがプロジェクトのデフォルトのバケットにない場合だけ。
- Realtime Database の URL — Realtime Database を使う場合だけ。Firestore ではここは不要です。
-
Firebase を接続 をクリックします。MonstarX は保存する前に Google でキーを確認し、接続済み の横に見つかった内容(プロジェクトの ID と Firestore のコレクション、または Firestore データベースがまだないこと)を表示します。
サービスアカウントのキーの代わりに小さなウェブアプリの設定を貼り付けるなど、違うファイルを貼り付けた場合は、MonstarX が受け付けず、足りない項目を示します。
アプリで Firebase を使って何ができますか?
Section titled “アプリで Firebase を使って何ができますか?”接続したら、「クラスが中止になったら会員にプッシュ通知を送って」のように、ふつうの言葉で機能を頼みます。MonstarX が Firebase を使って作ります。
| Firebase のサービス | アプリでできること |
|---|---|
| Firestore | ドキュメントの追加、読み取り、検索、更新、削除、件数の取得 |
| Authentication | 新規登録とサインイン、パスワードの再設定、ユーザーの管理(ウェブ API キーが必要) |
| Cloud Storage | ファイルのアップロード、ダウンロードリンクの取得、一覧と削除 |
| Cloud Messaging | 端末やトピックへのプッシュ通知の送信 |
| Realtime Database | データの読み書き(Realtime Database の URL が必要) |
すべてアプリのサーバーで動くので、訪問者にキーが見えることはありません。
Firestore をアプリのデータベースにできますか?
Section titled “Firestore をアプリのデータベースにできますか?”はい。どのアプリも最初は MonstarX のデータベースを使いますが、データの保存先を Firestore に変えられます。
-
先に Firebase を接続します(上記参照)。
-
バックエンドクラウド で このアプリのデータの保存先 を探します。
-
Firestore(ご自身の Firebase プロジェクト) を選びます。Firebase を接続する前は「先に Firebase を接続してください」と表示され、選べません。
-
アプリにすでにデータがある場合は、既存のデータをコピー をクリックして確認し、データを移します。
それ以降は次のようになります。
- MonstarX はテーブルの代わりにコレクションとドキュメントで作成し、コードを書く前に実際のコレクションを確認します。データにない項目をでっち上げることはありません。
- バックエンドデータベース には、Firestore の コレクション とそのドキュメントが表示されます。ここでは読み取り専用で、書き込みはアプリが行います。
- アカウントは MonstarX に残ります。 サインインの方法はこれまでどおりで、バックエンドユーザー も今までどおり使えます。MonstarX が自分のデータベースを削除せずに残しているのはこのためです。
元に戻すには、同じ場所で MonstarX データベース を選びます。アプリは元のデータベースに、そのままの状態で戻ります。
「既存のデータをコピー」は何をしますか?
Section titled “「既存のデータをコピー」は何をしますか?”- 各テーブルは同じ名前のコレクションに、各行はドキュメントになります。行の ID がドキュメントの ID になります。
- もう一度実行すると、ドキュメントが重複するのではなく更新されます。
- サインイン用の4つのテーブルは、アカウントがある MonstarX のデータベースに残ります。
- どちらの場所でも、何も削除しません。
- 大きなアプリは、何回かに分けてコピーされることがあります。リクエストを短く保つために途中で止めたと表示されたら、もう一度実行すると続きからコピーします。
知っておくと便利なこと
Section titled “知っておくと便利なこと”- Firestore と Supabase は、どちらか一方だけです。 アプリがデータを置くのは1か所です。Supabase から Firestore に移るには、先にデータを MonstarX のデータベースに戻してください。ただし、ストレージ、メッセージ、サインインのための Firebase コネクタ自体は、Supabase と並べて使えます。
- アプリに Firebase SDK は入りません。 MonstarX は、プレビューでも公開中のアプリでも同じように動く組み込みのヘルパーを通じて Firebase にアクセスします。
- スマートフォンへのプッシュ通知には、スマートフォンアプリから受け取る端末トークンが必要です。MonstarX は、アプリに渡されたトークンに送ります。
- Google Cloud Run への公開は別のコネクタです。詳しくは ほかのホスティング先に公開する をご覧ください。
よくある質問
Section titled “よくある質問”サービスアカウントのキーファイルはどこにありますか?
Firebase コンソールの プロジェクトの設定 → サービス アカウント → 新しい秘密鍵を生成 で取得できます。JSON ファイル全体を サービスアカウントのキーファイル に貼り付けてください。
Firebase をプッシュ通知だけに使えますか?
はい。Firebase を接続してもデータは移りません。このアプリのデータの保存先 で Firestore を選ばない限り、アプリは MonstarX のデータベースを使い続けます。
Firestore に切り替えると、ユーザーは新しいアカウントが必要になりますか?
なりません。アカウントは MonstarX のデータベースに残り、サインインもこれまでどおり使えます。Firestore に移るのは、アプリ自体のデータだけです。
「Firestore データベースがまだない」と表示されます。問題ですか?
Firestore を使いたい場合だけ問題になります。アプリがストレージ、サインイン、プッシュ通知だけを使うこともあるため、接続自体はできます。Firestore を使うには、Firebase コンソールで Firestore データベースを作成してください。
データをコピーすると、何かが削除されますか?
削除されません。既存のデータをコピー は、Firestore のドキュメントを追加または更新するだけです。MonstarX のデータベースはそのまま残ります。