FirebaseでAPIを正常に構築するにはどうすればよいですか?
公開: 2021-09-07Firebaseは、2012年にリリースされ、2年後にGoogleに買収されたアプリケーション開発プラットフォームです。 当初、Firebaseはリアルタイムアプリケーションのデータベースと考えられていましたが、Googleはその可能性を認識し、サービスを追加することを決定しました。
現在、FirebaseはBaaS(サービスとしてのバックエンド)システムであり、ウェブおよびモバイルアプリケーションの作成を容易にする18のサービスを備えています。 FirebaseのBaaSサービスを使用している企業には、Accenture、Alibaba Travels、Stack、Twitch、Instacart、その他2,300社以上があります。
Firebaseを使用するメリット
Firebaseが提供した最初のサービスはリアルタイムデータベースであり、今でも最大の魅力の1つです。 Firebase Real-timeデータベースはクラウドでホストされ、データをJSON形式で保存し、接続されているすべてのクライアントとリアルタイムで同期します。 iOS SDK、Android SDK、JavaScript SDKのいずれを使用する場合でも、Firebase Realtimeデータベースに接続されているすべてのアプリケーションは、データベースの1つのインスタンスを共有し、常に最新のデータで最新の状態に保たれます。
Cloud Firestoreは、もう1つの興味深いFirebaseサービスです。 これは、データの保存、同期、およびグローバル規模でのモバイルアプリとウェブアプリのクエリを容易にするように設計されたNoSQLドキュメントデータベースです。 関連データを格納するための階層の作成と、データを取得するための表現力豊かなクエリにより、CloudFirestoreの可能性を最大限に引き出すことができます。 次に、クエリは、データセットのサイズではなく、結果のサイズに基づいてスケーリングされます。 これにより、アプリケーションは、ニーズが容量を超える瞬間まで待たずに、最初から拡張できます。
前述のデータベースサービスに加えて、Firebaseは、ホスティングサービス、ファイルストレージ、機能(AWS Lambdaスタイル)なども提供します。
APIの作成
APIは、独自のアプリまたはサードパーティのアプリが使用するサービスを提供する方法です。 Firebaseを使用すると、カスタムサービスを提供して、Firebase独自のサービスを利用することができます。これらのサービスのバックエンドを設定する手間はかかりません。 たとえば、サードパーティアプリケーションのFirebaseリアルタイムデータベースへのアクセスを提供して、産業用センサーによって収集された情報をクエリできます。
FirebaseでAPIを作成する最初のステップは、Firebaseコンソールにアクセスし、[プロジェクトの追加]をクリックして新しいプロジェクトに名前を付けてプロジェクトを追加することです。 Googleは、新しいプロジェクトでGoogleAnalyticsを有効にするオプションを提供します。 APIからA / Bテストやさまざまな統計レポートなどのメリットが得られるため、この推奨事項を受け入れることをお勧めします。
プロジェクトを作成すると、APIが使用するFirebaseサービスを選択できるようになります。 このタスクを説明するために、FirebaseRealtimeデータベースサービスの使用方法を説明します。
Firebaseでのリアルタイムデータベースの設定
左側のナビゲーションバーの[開発]セクションで、[リアルタイムデータベース]をクリックします。 「データベースの作成」ボタンが右側に表示されます。 それをクリックして、Firebaseに最初のデータベースを作成します。

次に、新しいデータベースの地理的な場所のオプションをいくつか選択する必要があります。 ユーザーに最も近いものを選択してください。 これは、特にリアルタイムアプリで、APIのレイテンシを最小限に抑えるための重要な側面です。

次のステップは、データベースの基本的なセキュリティルールを構成することです。 ロックモードを選択してから必要に応じてアクセス許可を割り当てるか、すべての読み取りと書き込みを有効にするテストモードを選択できます。

最初にセキュリティ設定を複雑にしないように、テストモードオプションから始めることができます。 後でいつでもルールを作成して、セキュリティ構成をより細かく設定できます。
データベースの設定が完了するとすぐに、対応するAPIがGoogle CloudPlatformのパーソナルコンソールのAPIとサービスセクションでも有効になります。
FirebaseAPIのプログラミング
この時点で、Firebaseコンソールでプロジェクトの基本要素がすでに構成されています。 次のステップは、APIコードを作成することです。 これを行うには、ローカルコンピューターでFirebaseホスティングと機能を初期化する必要があります。 npmを使用してfirebase-toolsをインストールできます。
npm install -g firebase-tools次に、firebaseにログインし、次のコマンドを使用してプロジェクトを初期化できます。
firebase login firebase initプロジェクトが初期化されるフォルダをFirebaseが通知するウェルカム画面が表示され、オプションのメニューが表示されます。

そのメニューで、[関数とホスティング]を選択します([ホスティング]オプションを使用すると、開発するAPIのカスタムURLを使用できます)。 次に、前に作成したFirebaseアプリをリストから選択します。その後、使用する言語を選択する必要があります。 Web APIを開発するには、JavaScriptを選択できます。

パッケージの依存関係を使用する場合は、functionsフォルダー内にnpmを指定してインストールします。 次に、関数のコードの記述を開始できます。 必要な他のパッケージとともに、firebase-functionsパッケージとfirebase-adminパッケージを含めることを忘れないでください。
import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';リアルタイムデータベースを使用するには、JavaScriptSDKを初期化するときにそのURLを指定する必要があります。 URLは、Firebaseコンソールの[リアルタイムデータベース]セクションにあります。 あなたはそのフォーマットによってそれを認識することができます:

https://<database-name>.<region>.firebasedatabase.app次のスニペットを使用してSDKを初期化し、プロジェクトの構成オブジェクトに対応するデータを置き換えることができます。
var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();API関数のコードを記述したら、デプロイします。 ただし、その前に、firebase.jsonにいくつかの変更を加え、プロジェクトの構成に応じて変更された次の行を追加する必要があります。
"rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]次のステップは展開です。 初めて完全な展開を行う必要がある場合は、次のコマンドを実行します。
firebase deploy以降のデプロイでは、–only関数パラメーターを使用して関数のみをデプロイできます。
デプロイコマンドを実行すると、Firebase CLIはターミナルに関数のHTTPエンドポイントのURLを表示します。これを使用して、ウェブアプリケーションからAPIを呼び出すことができます。 URLには、プロジェクトIDとHTTP機能のリージョンが含まれています。 たとえば、次のURLを使用して、itemid = 1をパラメーターとして渡すことにより、アイテムクエリ関数を呼び出すことができます。
https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1関数を実行するには、ブラウザで対応するパラメータを使用してURLを開きます。
本番環境にデプロイするには、Firebase Blazeプランへのサブスクリプションが必要です。これは、Firebaseの料金ページで確認できるように、従量制です。 これは請求後のサービスです。つまり、月末に使用量が請求されます。
Blazeサブスクリプションがない場合、deployコマンドはAPIURLを表示しません。 代わりに、ランタイム環境にデプロイする場合は、Blazeプランにサブスクライブする必要があることを通知するメッセージが表示されます。 この場合でも、Firebase Local Emulation Suiteを使用して、Firebase本番環境にアプリケーションをデプロイする代わりに、ローカルマシンでアプリケーションをビルドしてテストできます。 ローカルテストは、アプリケーション開発中の不要なコストを回避するのに役立ちます。テストを実行するたびに、アカウントに料金が発生する可能性があるためです。
ローカルテストとプロトタイピング
Local Emulator Suiteツールは、ローカルマシンでアプリをテストするためのプロトタイピングを簡単かつ便利にする、統合されたユーザーインターフェイスを提供します。
Emulator Suiteユーザーインターフェイスを使用すると、データベースデザイン、Cloud Functionsワークフローのテスト、バックエンドサービスのパフォーマンスの分析、セキュリティルールの変更の評価などのタスクを実行できます。 基本的には、API機能を本番環境に送信する前にテストするための安全なサンドボックスです。
関数をエミュレートしたり、アプリケーションをローカルでテストしたりするには、firebaseエミュレーター:startを実行します。 Firestore Emulatorを使用するには、Javaがインストールされている必要があります。 お持ちでない場合は、こちらからインストールできます。
Firestore Emulatorを呼び出すと、コマンドはブラウザでEmulatorSuiteユーザーインターフェイスを開くことができるURLを返します。 デフォルトでは、このURLはlocalhost:4000になりますが、マシンごとに異なる場合があります。
HTTP関数の完全なURLも取得します。 このURLは次のようになります。
http://localhost:5001/apiproject-8753c/us-central1/itemQueryプロジェクトの名前と関数の名前だけが含まれ、ローカルマシンのポート番号も異なる場合があります。
関数をテストするには、エミュレーターから返されたURLをコピーし、必要なパラメーター(?itemid = 1など)を追加して、ブラウザーの新しいタブに入力します。 API実行の結果は、Emulator SuiteUIに表示されます。
[ログ]タブに、itemQuery()関数が実行されたことを示す新しいログが表示されます。 関数がFirestoreデータベースに新しいデータを生成する場合は、[Firestore]タブに表示されます。
APIの露出を増やす
開発したAPIの人気を高めたい場合は、Firebaseもそのお手伝いをします。 これにより、アプリケーションをより高速に構築できるため、バックエンドサービスを起動して実行するための多くの作業を省くことができるだけでなく、製品の位置付けを支援することもできます。 そんなことがあるものか? Firebaseに関連付けられているアプリは、他のアプリケーションよりも検索ランキングで上位にランク付けされているからです。
また、Firebaseのアプリインデックス作成APIも考慮に入れてください。 このツールは、アプリリンクの検索ランキングを向上させ、ユーザーが目的のコンテンツを見つけるのに役立ちます。 また、アプリのホームページボタンの後に[インストール]ボタンを配置して、関心のあるユーザーがクリックするだけでアプリのユーザーになることができるようにします。
結論として、Firebaseは、APIの開発を劇的にスピードアップするバックエンドサービスを提供するだけでなく、APIが稼働して世界に公開されると、APIを宣伝し、それから収益を上げるのにも役立ちます。
