Firebaseとは?すべての秘密を解き明かす
この記事では、Firebaseの詳細な分析、その重要な長所と短所、価格体系、およびコア機能について説明します。
堅牢で高品質なモバイル・アプリケーションの開発には、多くの献身が必要だが、それ以上に重要なのは、強力で機能豊富な開発プラットフォームである。
Googleが提供するFirebaseは、世界中の開発者を魅了するプラットフォームのひとつだ。
Firebaseは、高機能で汎用性の高いWeb、Android、iOSプラットフォームアプリケーションを作成するための多くのオプションを開発者に提供します。
アプリ開発の分野にはいくつかの競合があるが、Firebaseは現在利用可能な最高のプラットフォームと常に会話している。
Firebaseがどのように機能するのか、その機能について詳しくご紹介します。
Contents
Firebaseとは何ですか?
Google Firebaseとは?Googleが提供するモバイルアプリケーション開発プラットフォームで、アプリケーションの開発、処理、拡張のための強力な機能を備えています。Firebaseは、ウェブアプリケーションやモバイルアプリケーションを構築するためのバックエンドプラットフォームです。(1)
Firebaseは基本的に、開発者が需要に応じてアプリケーションを作成・拡張するために信頼できるツールの集合体である。
Firebaseは、開発者の3つの主な問題を解決することを目指している:
- アプリを素早く構築
- 自信を持ってアプリをリリースし、監視する
- ユーザーを巻き込む、
このプラットフォームに依存している開発者は、自社で開発しなければならないサービスにアクセスできるため、堅牢なアプリケーション体験の提供に専念できる。
Google Firebaseプラットフォームの優れた機能には、データベース、認証、プッシュメッセージ、分析、ファイルストレージなどがある。
サービスはクラウドホスティングされているため、開発者は手間なくオンデマンドのスケーリングをスムーズに行うことができる。Firebaseは現在、世界中の開発者が信頼するトップアプリ開発プラットフォームのひとつです。
カテゴリー | 詳細 |
---|---|
Firebaseの概要 | Googleが提供するモバイルアプリ開発プラットフォームで、アプリの開発や拡張のための機能を備えている。 |
Firebaseの主な特徴 | データベース、認証、プッシュメッセージ、分析、ファイルストレージなどが含まれる。 |
Firebaseの位置 | 本社はカリフォルニア州サンフランシスコ。 |
Firebase創設者 | 2011年、アンドリュー・リーとジェームズ・タンプリンによって設立。 |
Firebaseを使用した人気アプリ | アリババ、ニューヨーク・タイムズ、Todoist、ル・フィガロ、eBay Motors。 |
開発可能なアプリの種類 | Android、iOS、Webアプリケーション。 |
Firebaseは何に使われていますか? | 人気のFirebaseユースケースには、MVP、リアルタイムアプリ、チャット/メッセージアプリ、広告最適化、写真共有、ビジネスアプリなどがあります。 |
Firebaseの代替 | Back4app、Backendless、AWS Amplify、Parse。 |
Firebaseの歴史
Firebaseの歴史は非常に魅力的で、多くの新興企業と同様に、浮き沈みが激しい。2011年にAndrew LeeとJames Tamplinによって設立されたスタートアップ企業Envolveに端を発する。(2,3,4)
同社は、ウェブサイトのオンラインチャット統合を容易にするAPIを開発者向けに提供していた。Envolve の創業者は、自社のチャットサービスがチャット以外のメッセージの中継に利用されていることを発見した。
開発者たちは、リアルタイムのアプリケーションデータ同期にこのプラットフォームを利用していた。リーとタンプリンは、リアルタイム・アーキテクチャをチャット・システムから差別化することに決め、2011年にFirebaseを設立した。サービス・プラットフォームとしてのFirebaseバックエンドは、2012年4月に一般公開された。
Firebaseの最初の製品はRealtime Databaseだ。これは、Android、ウェブ、iOSデバイス間でアプリケーションデータを同期するためのAPIである。アプリケーション開発者は、このプラットフォームを利用して、コラボレーション可能なリアルタイムアプリケーションを作成することができる。
同社は2012年、Greylock Partners、New Enterprise Associates、Flybridge Capital Partners、Founder Collectiveなどの出資者から100万ドル以上のシード資金を調達した。また、2013年6月にはFlybridge Capital PartnersとUnion Square VenturesからシリーズA資金560万ドルを調達している。(5)
Firebase AuthenticationとFirebase Hostingは、Firebaseが2014年に開始し、MBAaS(Mobile Backend as a Service)のリーディングカンパニーとしての地位を確立した。
Firebaseは2014年10月にグーグルの一部となり、現在はグーグルのBaaSプラットフォームとなっている。その後、GoogleはウェブホスティングプラットフォームのDivshotを買収し、Firebaseと統合した。(6)
Firebaseのレビュー
G2によると、Firebaseのスコアは5点満点中4.5点で、266人のユーザーがこのプラットフォームをレビューしている。また、アプリ開発、クラウド機能、データストレージなど、製品の特徴についても言及されている。
TrustRadiusによると、Firebaseのスコアは10点満点中8.5点で、128人のユーザーがこのプラットフォームを評価しています。ほとんどのユーザーが好意的で、否定的なレビューはごく少数でした。
Capterraによると、Firebaseのスコアは5点満点中4.6点で、764人のユーザーがこのプラットフォームをレビューしている。包括的な機能のセットは共通の肯定的な側面であり、ソリューションの複雑さは共通の否定的な側面である。
Firebaseの利点
メリット番号 | メリット | 説明 |
---|---|---|
1 | 無料スタート | Firebaseは、開発者がコストをかけずに始められるよう、制限に余裕のある無料のSpark Planを提供しています。 |
2 | 開発スピード | 迅速な開発が可能になり、市場投入までの時間が短縮される。バックエンドの別チームを必要とせず、フロントエンド開発者がほとんどの作業を処理できるからだ。 |
3 | エンド・ツー・エンドのアプリ開発プラットフォーム | ビルドからテスト、デプロイ、モニタリングまで、アプリ開発サイクル全体をカバーする包括的なツール群を提供。 |
4 | Powered by Google | Googleの支援を受け、堅牢性とGoogle Cloudサービスとの統合を提供。 |
5 | フロントエンド開発に注力 | バックエンドのコードの必要性が減り、開発者はアプリケーションのフロントエンドの作成に集中できる。 |
6 | サーバーレス | サーバーレス環境を提供し、スケーリングやサーバー管理に関する懸念を軽減。 |
7 | 機械学習機能 | アプリに機械学習機能を実装するためのツールを提供し、あらゆるスキルレベルの開発者が利用できる。 |
8 | アプリへのトラフィックを生み出す | アプリのインデックスをサポートし、Google検索でのアプリランキングを向上させることで、アプリの認知度を高め、ユーザー獲得を促進します。 |
9 | エラー監視 | リアルタイムのエラー追跡と解決を可能にするCrashlyticsを搭載し、アプリの安定性とユーザーエクスペリエンスを向上。 |
10 | セキュリティとバックアップ | 定期的なバックアップや安全なデータ処理などの機能により、データのセキュリティと可用性を確保します。 |
もっと知りたいですか?下記の詳細をご覧ください:
1.無料スタート
Firebaseは無料で始められ、ユーザーはGoogleアカウントでログインできる。(7)
無料のSparkプランには、開発者が使い始めるのに役立つ多くの機能が用意されている。要件の成長に応じて、Blazeプランを選択することができる。
コストをかけずに始められるのはFirebaseの良いオプションであり、人気の理由の一つでもある。Sparkプランでは、データベースの読み書き回数に制限があります。
もうひとつの利点は、Blazeプランが本来の無料制限を考慮していることだ。
例えば、Blazeプランでは20GBのストレージをホストします。Blazeプランでは20GBのストレージをホストすることになります。
2.開発スピード
Firebaseは、開発者がアプリを開発する時間を大幅に短縮するのに役立つ、適切なアプリケーション開発オプションです。
通常、すべての開発者は、データベースやバックエンド・サービスの作成やメンテナンスのために、サーバーやホストにアクセスする必要がある。
したがって、アプリケーションを構築するためには、バックエンド開発者とフロントエンド開発者が必要だ。それは、バックエンドとフロントエンドが異なる段階で協力しなければならないような小規模なアプリケーションであっても同じです。
フロントエンドとバックエンドの開発者がいると、しばしばエラーや問題が発生し、アプリケーションの問題を引き起こし、開発コストと複雑さを増大させる可能性がある。
しかし、Firebase を使用することで、フロントエンド開発者はすべての作業を管理し、完成までに必要な時間を短縮することができます。データストレージ、認証、通知、分析など、すぐに使えるサービスのおかげだ。
その上、Firebaseは、開発者が定型的なコードを作成したり、車輪を再発明したり、バックエンドをゼロから始めることを防ぐ、すぐに使える複数のサービスを提供する。
高品質なSDK、詳細なドキュメント、活気あるコミュニティのおかげで、フロントエンド開発者はFirebaseをコードベースに統合するのにそれほど問題はないだろう。
3.オール・イン・ワン・プラットフォーム(幅広いサービス数)
Firebaseはまた、開発プロセスを支援する製品の包括的なリストを開発者に提供する。
まず、FirestoreとFirebase’s Realtime Databaseの2つのデータベースオプションがある。同様に、Firebaseはクラウドメディアストレージを簡単に実行でき、統合されたCloud Functionsによってサーバーレスアプリケーション開発を可能にする。
Firebaseはアプリケーションの開発サイクル全体をカバーし、プラットフォームにはアプリケーションの構築、リリース、監視のための機能が含まれています。
また、アプリケーション開発サイクルの最終段階として、ユーザーを引き付け、使い続けさせるためのツールを提供する。
4.グーグル
Firebaseは、テクノロジーの世界で最も著名で信頼されているGoogleによって運営されています。
買収以来、Firebaseは一連の変化と開発を経て、今日の信頼できるプラットフォームとなった。Google CloudとGoogleの多くのサービスのパワーを活用している。
Firebaseは現在、Google Cloud Platformの一部であり、他のGoogle Cloudサービスと完全に調和し、多くのサードパーティ・サービスと統合されている。(8,9)
Firebaseの買収以来、グーグルはこのプラットフォームに多額の投資を行い、より堅牢な製品を提供してきた。
5.フロントエンド開発に注力
世界中の開発者がFirebaseを好むのは、モバイル・アプリケーションのフロントエンド・コードの作成に集中できるからだ。
Firebaseは、定型的なバックエンドコードを開発する必要性を減らし、アプリケーションの開発完了日を早めます。
Firebaseはアプリケーション開発を便利にし、コストを抑えるのに役立ちます。
また、Firebaseを使用することで、開発者や企業はバックエンド環境を単一の習得しやすい技術で標準化することができます。
バックエンドパターンは、それをサポートするために必要なトレーニングを減らし、フロントエンドに焦点を当てた開発者がほとんどの活動を行えるようにする。
6.サーバーレス
サーバーのスケールアップやスケールダウンは簡単な作業ではない!特にデータベースクラスタのスケールアップは困難で、巨大なワークロードのパフォーマンスを最適化するには経験豊富なエンジニアが必要です。
Firebaseはこの問題を解決し、完全にサーバーレスな環境を提供します。
Firebaseはサーバーレスアーキテクチャを採用しており、ユーザーはリクエストに応じて支払いを行う。常に機能し続けなければならない従来のサーバーとは異なります。
Firebaseのユーザーは、サーバーレスの性質上、サーバーが利用されている時のみ課金される。その結果、効率性が向上するため、スケーリングに関する懸念が少なくなる。
開発者は、DevOps、セットアップ、インフラストラクチャー、キャパシティプランニングをハンズオンで扱うことで自由を得ることができる。
7.機械学習
機械学習は、情報技術分野を改造する端緒についた。数え切れないほどの方法で、それはすでに始まっている。
ガートナーによると、30%の企業がプロセスの一部でMLを利用するという。(10)
Firebaseは、開発者が機械学習に頼ることができる点でも有利だ。
MLは、iOSやAndroidの開発者が経験レベルに関係なく活用できる。
Firebaseには、テキスト識別、顔検出、画像ラベリング、バーコードスキャンなど、さまざまなモバイルプラットフォーム機能用のAPIがすぐに利用できるMLキットがある。
開発者は、アプリケーションの開発要件に基づいて、クラウドAPIまたはオンデバイスAPIを選択することができる。
8.トラフィックを生み出す
Firebaseはアプリのインデックスを容易にし、検索上でアプリのリンクを提供することで、ユーザーにGoogle検索ユーザーとの再連携を促す。(11)
また、アプリケーションをインデックス化することで、検索エンジンのランキングを向上させることができます。
開発者は、アプリケーション・コンテンツにアクセスするために利用できるAndroid Instant Appに頼ることができる。
9.エラーの監視
FirebaseのCrashlytics機能は、問題を素早く見つけて修正するための素晴らしいツールです。Firebaseは致命的でないエラーと致命的なエラーを監視することができ、エラーがユーザーエクスペリエンスにどのような影響を与えるかに基づいてレポートが作成される。(12)
10.バックアップ
Firebaseは、定期的なバックアップにより、データの最適なセキュリティと可用性を保証します。(13)
このプラットフォームの自動バックアップ機能に頼ることで、アプリはデータ損失から守られる。
Blazeプランでは、Realtime Databaseの自動バックアップを簡単に設定することができます。Firebase DatabaseのBackupsタブをクリックすると、自動バックアップの設定にアクセスできます。
Firebaseの制限
制限番号 | 制限 | 説明 |
---|---|---|
1 | オープンソースではない | Firebaseはオープンソースのプラットフォームではないため、開発者のカスタマイズや変更の可能性が制限されている。 |
2 | ベンダー・ロックイン | Firebaseを使用すると、この特定のプラットフォームに依存することになり、大きな変更なしに他のサービスに切り替えることが難しくなる可能性がある。 |
3 | 地理的制約 | FirebaseのサービスはGoogleの一部であるため、中国のようにGoogleのサービスがブロックされている国ではアクセスできない。 |
4 | NoSQLデータベースのみ | FirebaseはNoSQLデータベースのみをサポートしており、特に複雑なクエリやトランザクションを必要とするアプリケーションには適していないかもしれません。 |
5 | 遅いクエリー | Firebase のサービスの中には、Firestore のように、特に大規模なアプリケーションのクエリパフォーマンスに制限があるものがあります。 |
6 | 価格設定の複雑さ | Firebaseの価格設定は、特に使用パターンが変動するアプリケーションの場合、予測不可能で困難な場合があります。 |
7 | Google Cloud限定 | FirebaseはGoogle Cloud上だけで動作するため、他のクラウドプラットフォームでのホスティングには柔軟性がない。 |
8 | 専用サーバーの不足 | Firebaseは専用サーバーオプションやエンタープライズ契約を提供していないため、大規模なアプリケーションのパフォーマンスやカスタマイズが制限される可能性があります。 |
9 | GraphQL APIなし | FirebaseはGraphQL APIをネイティブサポートしていません。開発者はGraphQLを使用するための回避策を実装する必要があります。 |
10 | 複雑さと学習曲線 | Firebase の包括的な機能セットは、特にクラウドベースのアプリ開発に慣れていない開発者にとっては、学習曲線が険しくなる可能性があります。さらに、コストとパフォーマンスを管理するために Firebase サービスを管理し最適化することは複雑です。 |
以下では、Firebaseの限界をより詳細に探ってみよう:
1.オープンソースではない
Firebaseはモバイルアプリケーション開発のためのオープンソースの選択肢ではないため、多くの開発者にとって最適な選択肢とは言えない。
Firebaseはクローズドソースであるため、ユーザーはソースコードを変更することができない。この制限のため、Firebaseの機能が好きな開発者の多くは、他のプラットフォームを使うことになる。
このプラットフォームはオープンソースではないが、多くのライブラリやSDKがGitHubで公開されていることを強調しておきたい。(14)
これがFirebaseの最も大きな制限であり、コミュニティが製品を改善し、柔軟性のレベルを上げ、Firebaseの価格設定ができない開発者にセルフホスティングオプションを提供することを妨げている。
プロプライエタリな技術で動作しない選択肢については、Firebase Open-Source Alternativesの記事を参照してください。
2. ベンダーロックイン
Firebaseを使用するもう一つの大きな障害は、ベンダーロックインがあるという事実である。
これは、一部の開発者がこのプラットフォームを選択するのを止める重要な問題である。ソースコードにアクセスできないことは、開発者によってはかなり厄介なことだ。
特に大規模なアプリの場合、他のベンダーに移行するのは簡単なことではなく、移行するにはバックエンド全体を一から作り直す必要がある。
3. Firebaseは多くの国で動作しません。
FirebaseはGoogleのサブドメインで、公式サイトはhttps://firebase.google.com。多くの国でブロックされている。
中国が*.google.comや*.googleapis.comでURIを妨害しているため、中国や他のグーグル・サービスのような国ではグーグルはブロックされ、アクセスできない。
対象国一覧は透明性報告書を参照。(15)
中国でアプリケーションをホストする最良の方法については、中国におけるFirebaseの代替案という記事をお読みください。
4.NoSQLデータベースでのみ動作
FirebaseのデータベースオプションであるFirestoreとFirebase Realtime DatabaseはどちらもNoSQL構造を提供しており、リレーショナルデータベースを使用するオプションはありません。(16,17)
- 複雑なクエリー
NoSQLデータベースでユーザーが直面するもう一つの課題は、複雑なクエリの実装である。
FirebaseはRTDBと比較してCloud Firestoreを大幅に改善したが、複雑なクエリを実行することは特定のユーザーにとってはまだ難しい。
StackOverflowから抜粋した上の例は、ユーザーがParseからFirebaseに移行する際に直面する課題を示している。(18)
ユーザーの問題の例としては、フィルタリング、フィルタの組み合わせ、複数のクエリの組み合わせに関するものがある。
このような状況に対する解決策があり、ユーザーがFirebaseを使って複雑な細工をすることができるとしても、プラットフォームを使う初心者にとっては実装が簡単ではないかもしれない。
- トランザクション
StackOverflowの興味深いスレッドで、Firebase Realtime DatabaseがACIDプロパティをどのように扱うかが議論されています。(19)
トランザクションをサポートするとはいえ、従来のリレーショナル・データベースとは異なり、開発者はコードを実行しなければならず、システムが複雑になる。(20)
- データ移行はSQLデータベースのように簡単ではない
Firebaseを使わない5つの理由という記事によると、Firebaseでは、単純なSQLデータベースと同じようなデータ移行に素早く対応することができない。
FirebaseはJSONを使用しており、SQLの機能はほとんどないため、データベースからの移行はそれほど簡単ではない。
5.遅いクエリー
すべてのデータベースがすべてのユースケースに最適というわけではなく、Cloud Firestoreも例外ではない。
アプリを拡張し、オフライン・クエリー・サポートとリアルタイム更新を提供する素晴らしいソリューションだが、限界もある。(21).
いくつか例を挙げよう:
- 書き込み回数は毎秒1回に制限;
- ネイティブの集約クエリはない;
- APIリクエストの最大サイズは10MB;
- ドキュメントのサイズ制限は1MiBです;
- 最大同時接続数1M;
- クエリーの柔軟性;
- クエリがパフォーマンスを低下させる。
Firestoreの制限について詳しく知るには、2つの素晴らしい記事があります。1つ目は、アプリのデータベースを選択する際にFirestoreについて知っておくべきトップ10のこと、2つ目は、Cloud Firestoreのクエリが遅い理由です。
6.すべてのFirebaseサービスが無料で始められるわけではありません。
ほとんどのサービスはSparkプランで利用できるが、このルールには例外もある。例えば、Cloud FunctionsとMachine Learningである。(7)
クラウド機能はBlazeプランでのみ利用可能で、Sparkプランではお試しいただけません。
クラウドファンクションの無料枠を強調することは重要だが、Blazeプランではユーザーが無料枠を超えると課金が発生する。
機械学習機能のCloud Vision APIは、Sparkプランでは利用できないサービスの2番目の例である。このサービスはBlazeプランのユーザーのみが利用可能で、API1.5ドル/kが課金される。
7.高価で、価格設定が予測しにくい。
Firebaseは機能豊富なモバイルアプリケーション開発プラットフォームで、高価なものもある。無料プランもあるが、それにはいくつかの制限がある。
多くの開発者が、Digital Ocean、AWS、Google Cloudといった選択肢を使ったセルフホスティングのアプリケーションに落ち着いてしまうのは、そのためだ。
Firebaseは純粋なIaaSプロバイダーの上に付加価値を提供するが、利便性には代償が伴う。一般的に言って、アプリケーションをセルフホストする方がFirebaseを使うよりも安くなる。(22)
そのため、Firebaseを利用する前に、IaaSプロバイダーでクラスタを設定するための初期費用と、サーバーを維持するための継続費用(サーバー+追加エンジニアリング費用)を、Firebaseで直接アプリケーションを実行する場合と比較して正しく確認してください。
Firebaseを高価なものにしているもう一つの側面は、それがプロプライエタリな技術であり、エンジニアリング投資に対するリターンを必要とすることである。一方、オープンソースの技術は、コミュニティベースの開発の力を利用し、より手頃な価格でソリューションを提供することができます。
Firebaseは利用ベースの価格モデルでサービスを提供しており、価格の上限を設定するのは難しい。このプラットフォームには固定料金プランがなく、リソースの使用状況を把握するのは面倒なことだ。
Firebaseのコスト見積もりは、特にスケーラビリティ要件が予測できない場合、ユーザーによっては難しいかもしれません。価格設定は複雑で、Firebaseは機能ごとに特定の価格を設定しています。
このプラットフォームでは、コストを閾値以下に抑えることはかなり難しく、請求書に上限を設けたり、厳しい制限を設けたりする簡単な方法はない。
とはいえ、Google Cloudとの統合により、予算や利用アラートを設定したり、リクエスト数の上限を明示したりする方法もある。しかし、これらはFirebaseの枠を超えなければならず、設定も少々複雑だ。
支出を最適に管理するには、Firebase の機能を最適に使用する必要があります。例えば、Cloud Functionのコードを最適化して実行時間を短縮したり、RTDBとFirestoreを正しく使い分けたりすることです。例えば、小さくても高スループットのデータを扱うには RTDB を使用し、大きなデータセットや複雑なクエリが必要な場合は Firestore を使用します。
以前、FirebaseはFlameプランを提供していました。これは月額25ドルの固定料金プランで、2020年1月に廃止された。(23,24)
料金体系の変更により、一部のユーザーには不便が生じ、従量課金に移行したことで、状況によっては料金が増加しました。このトピックについて詳しくは、Firebaseのコストが7,000%増加!の記事をお読みください。
利用ベースの仕組みが必ずしも悪いわけではないことに注意してほしい!AWSやAzureのようなほとんどのIaaSプロバイダーもこの原則を採用しています。
ポジティブな面としては、消費したリソースが正確に課金され、きめ細かさが増す。
このモデルをご契約される前に、請求の仕組みをご理解いただき、月末に予期せぬ請求が発生しないよう、定期的にコストをご確認ください。
8.Google Cloud上でのみ動作
Firebaseは現在Googleの一部であり、そのインフラはすべてGoogle Cloud上で稼働している。(25)
AWS、Azure、Digital Oceanのような他のクラウドプロバイダー上でFirebaseを実行するオプションはありません。
Firebaseは、ホスティングオプションの柔軟性を制限しています。Firebaseはサーバレベルのアクセスを提供しないため、サーバ設定のカスタマイズが必要な場合に問題が発生する可能性がある。
9.専用サーバーと企業契約の欠如
Firebaseユーザーには、専用サーバーやエンタープライズ契約のオプションはありません。(23)
専用サーバーを提供しないのは大きな制限だ。Firebaseを使う唯一の方法はサーバーレス構造であり、完全な専用クラスタ構造よりも柔軟性に欠ける。
また、リソースを共有しても、隣人がうるさいため、最適なパフォーマンスが得られないこともある。
サーバーレス環境は、作業負荷が時間と共に変動するアプリ、例えば日中や週中にピークや谷があるアプリにとって、優れた選択肢となる。
レストラン予約アプリを想像してみてほしい。サーバーレス環境は、金曜・土曜の夜のピーク時にすべてのサーバーリソースが自動的に割り当てられることを保証するので、このアプリには問題なく機能するだろう。
一方、いくつかのアプリケーションのワークロードはそれほど変動しないが、オーダーメイドのセキュリティ設定やサーバーレベルのアクセスが必要になる場合がある。このようなシナリオではサーバーレス構造は適切ではなく、専用ホスティングがより適切なオプションとなります。
Firebaseは企業向けの料金プラン、契約、サポートを提供しておらず、これは多くの潜在的なユーザーにとって重要な問題である。しかし、Blaze プランはエンタープライズレベルのニーズを持つ開発者にとっては適切なオプションであると考えられる。
10.GraphQL APIを提供していない
Firebaseは標準セットアップの一部としてGraphQL APIを提供していません。FirebaseでGraphQLを実装するための回避策はありますが、RESTはまだプラットフォームのデフォルトオプションです。
GraphQLとFirebaseについてもっと知りたい方は、StackOverflowのこの質問をご覧ください。(26)
Firebaseの価格
Firebaseは、ユーザーに無料プランと使用量に応じたプランを提供している。しかし、ユーザーは、固定された均一価格のプランを手に取って始めることができない。(7)
プラン | 説明 |
Spark (フリープラン) | FirebaseのSparkプランは無料で、10GBのホスティング、SSL、複数のウェブサイト、カスタムドメイン、その他いくつかのサービスが利用できます。 Firebase ML、Realtime Database、Cloud Firestore、Test Labなどの貴重な機能がある。 これらはFirebase Spark Planで利用できるオプションの一部である。 |
Blaze (ペイ・アズ・ユー・ゴー) | FirebaseのBlazeプランは、従量課金制のフレキシブルな価格モデルです。 Sparkプランの全機能に加え、開発体験を向上させるための追加機能があります。 このプランでは、ユーザーはホスティングに$0.026/GBを支払う必要があり、ストレージのGBごとに同じ金額を支払う必要があります。 Sparkプランの制限の多くは、Firebase Blazeプランで解除されます。 FirebaseのウェブサイトにあるBlazeプランの計算機は、見積もり費用を計算するのに便利なツールです。 |
Freeプランにはいくつかの制限があり、例えば開発者はCloud Functionsにアクセスできない。
Blazeは、Cloud Firestore、Cloud Functions、Authentication、Hosting、Firebase ML、Realtime Database、Storageといった機能セットごとにセグメント化された従量課金制の料金プランである。
- Firebase常時無料サービス
Firebase は、多くの開発者がアプリケーション開発プロジェクトを開始できるよう、常に無料のサービスを提供しています。
これらのサービスは、どのプランを選んでも無料で利用できる。プラットフォーム上で提供されるさまざまなサービスを「いつでも無料」として見てみよう。
- テスター向けのアプリ配信。
- 検索エンジンにアプリケーションをインデックスさせるアプリのインデックス化
- A/Bテストのためのユーザー別アプリバージョンのデプロイメント
- アプリのパフォーマンス予測とレポート
- 統合されたメッセージングによるアクティブなアプリ顧客との対話
- Firebase CloudメッセージでAndroid、iOS、ウェブアプリに自動通知とユーザーメッセージング。
- Firebaseアプリのパフォーマンス監視
- Firebase Crashlyticsによるアプリケーションのクラッシュ検出
- ダイナミック・リンクを使用した、異なるプラットフォーム間でのユーザー・リダイレクト
- リモート・アプリケーション機能のカスタマイズ
- Firebaseの機械学習コンポーネントは、アプリケーションのリピーターに関する情報を予測することができます。
- Firebase有料サービス
Firebaseコンソールの「利用状況」タブにアクセスすると、プランの支払い状況やFirebaseの各種サービスの利用状況関連データを確認できます。
- ストレージタブ-ストレージタブは、データベース内のデータの総量を表示します。
- Connections]タブ-[Connections]タブには、WebSocketを含むリアルタイム接続の総数に関する情報が含まれる。
- Load(ロード)タブ-このタブには、アプリケーションのロードをグラフィカルに表示し、指定された時間内にこのデータをユーザーに表示します。
- Downloads(ダウンロード)タブ-データベースからダウンロードされたデータの総量に関する情報が含まれています。
Firebaseの価格については、Google Firebase Pricing for Dummiesをご覧ください。
Firebaseのプライバシー
Firebaseのプライバシーポリシーは、欧州連合の一般データ保護規則であるGDRPと、カリフォルニア州消費者プライバシー法であるCCPAをサポートしています。また、Firebaseは、27001、27017、27018、SOC1、SOC2、SOC3など、複数のISOおよびSOC認証に準拠しています。
Firebaseは、Firebase以外のサービスデータをGoogleにフィードします。このオプションはデフォルトで選択されているため、ユーザはチェックを外す必要があります。
Firebaseの特徴
Firebaseには、開発者のニーズに応える高度な機能が豊富に用意されている。(27)
機能は、ビルド、リリース&モニター、エンゲージに分類される。バックエンドとしてのFirebaseは、モバイルアプリケーション開発の様々な段階で活用されている。
Firebaseの特徴 | カテゴリー | 説明 |
---|---|---|
Firestore | ビルド | データの保存と同期を行うクラウドベースのNoSQLデータベース。 |
Realtime Database | ビルド | クラウドホスティングされたデータベースにより、プラットフォーム間でのリアルタイムなデータ同期が可能。 |
リモート設定 | ビルド、リリース、エンゲージ | 新しいバージョンをデプロイすることなく、アプリの動作や外観を変更できます。 |
Firebase拡張機能 | ビルド | Firebaseの機能を拡張するためのパッケージ化されたソリューションのセット。 |
アプリチェック | ビルド | 請求詐欺やフィッシングなどの不正行為からバックエンドリソースを保護します。 |
クラウド機能 | ビルド | イベントに応じてバックエンドのコードを実行するサーバーレス・フレームワーク。 |
認証 | ビルド、エンゲージ | 様々な方法でユーザー認証と管理を行う。 |
クラウド・メッセージング | ビルド、エンゲージ | 信頼性の高い方法でプラットフォームを越えてメッセージを配信するためのサービス。 |
ホスティング | ビルド | 高速な展開と安全な配信でウェブホスティングを提供。 |
クラウドストレージ | ビルド | 堅牢なデータアクセス制御を備えたクラウドファイルストレージソリューション。 |
Firebase ML | ビルド | 最小限の専門知識でアプリに機械学習を統合。 |
Crashlytics | リリース、エンゲージ | 安定性の問題の追跡、優先順位付け、修正を支援するリアルタイムクラッシュレポートツール。 |
グーグル・アナリティクス | リリース | アプリの使用状況やユーザーエンゲージメントに関する詳細なインサイトを提供します。 |
パフォーマンス・モニタリング | リリース | アプリのパフォーマンスを監視し、問題を迅速に特定・解決。 |
テストラボ | リリース | 実デバイスと仮想デバイスを使ったクラウドベースのアプリテスト。 |
アプリ配信 | リリース | アプリのベータ版の配布を管理します。 |
A/Bテスト | エンゲージ | 制御されたユーザー体験でアプリを改善するための実験を行う。 |
クラウド・メッセージング | エンゲージ | ターゲットを絞った文脈に即したメッセージでユーザーを惹きつける。 |
アプリ内メッセージ | エンゲージ | ユーザーがアプリを使用している間、積極的に参加するようメッセージを送る。 |
各機能の詳細を探ってみよう。
データベース – Firestoreとリアルタイムデータベース
Firebaseプラットフォームの2つのデータベースは、Cloud FirestoreとRealtime Databaseであり、どちらも最新のアプリケーション開発要件に対応する貴重なツールである。
Google Firestoreとしても知られるCloud Firestoreは、Firebaseモバイルアプリケーション開発プラットフォームのコンポーネントです。
Firebaseは基本的にクラウドベースのNoSQLデータベースで、データの保存と同期を行う。Firebaseユーザーは、ネイティブSDKを介してモバイルやウェブアプリケーションからFirestoreにアクセスできる。
Cloud Firestoreは、Unity、C++、Java、Node.js SDK、REST API、RPCサポートなど、さまざまなプログラミング言語で利用できます。FirebaseのFirestoreデータベースは、最適なパフォーマンス、信頼性、自動スケーリング、ベンチマークの使いやすさを提供することを目的としています。
Firestoreの詳細については、Google Firestoreとはの記事をお読みください。(28)
Firebase Realtime Databaseはクラウドホスト型のデータベースです。JSONベースのデータ保存を容易にし、接続されたクライアントとリアルタイムでデータの同期を行います。
iOS、JavaScript、Android SDKを使用したクロスプラットフォームのアプリケーション開発プロセスにおいて、Realtime Databaseのシングルインスタンスがクライアントとして機能します。
これにより、アプリケーションは最新のアップデートとデータを受け取ることができます。データベースSDKがディスク上のデータ永続化を行うため、オフラインアプリケーションは応答性を維持できます。接続性の回復後、デバイスを現在のサーバー状態に同期するのに役立ちます。(29)
Cloud FirestoreとThe Realtime Databaseの違いについては、Firestore vs. Realtime Databaseの記事をご参照ください。
- リモート設定
リモート・コンフィグは、ユーザーがアプリケーションを更新することなく、アプリケーションの動作や外観を変更できるようにするクラウド・ソリューションである。
ユーザーは、アプリの動作や外観のメンテナンスのために、アプリ内のデフォルト値を作成することもできます。(41)
- Firebase拡張機能
Firebase Extensionsは、日常的なタスクを自動化することで開発プロセスを効率化する、パッケージ化されたソリューションです。
基本的には、Firebaseや他のGoogle Cloudサービスにシームレスに統合された、設定可能でデプロイ可能なコードのセットである。
開発者は、画像のリサイズ、電子メールのトリガー、サードパーティ・サービスとの同期など、さまざまな機能にこれらの拡張機能を使用できます。定型的なコードを書く必要性を減らし、プロジェクト開発を加速させます。
複雑な操作を簡素化することで、Firebase Extensions は開発者が独自のアプリケーション機能の構築に集中できるようにし、アプリ開発のライフサイクルにおける効率性と生産性を高めます。
- Firebaseアプリチェック
Firebase App Checkは、Firebaseのバックエンドリソースを不正や有害なトラフィックから保護するために設計されたセキュリティ機能です。
Firebase サービスへのリクエストが本当に信頼できるアプリからのものであることを確認します。
App Checkは、アプリの認証、つまりリクエストを行うアプリの正当性を確認するデジタルトークンを使用することでこれを実現する。
App Checkを統合することで、開発者は課金詐欺や不正なデータ取得などの不正アクセスや不正使用を効果的に防止し、Firebase実装の全体的なセキュリティを強化することができます。
- クラウド機能
Firebase Cloud Functions は、HTTPS や Firebase の機能トリガーイベントに応答するバックエンドコードを実行できるサーバーレスフレームワークです。
Google CloudはTypeScriptやJavaScriptのコードを保存し、マネージド環境で実行できる。(31)
サーバーのスケーリングや管理の必要性を軽減します。クラウドファンクションの詳細については、Firebaseクラウドファンクションとは?
- 認証
AuthenticationはFirebaseの機能で、ユーザーアプリケーション認証のためのすぐに使えるUIライブラリ、バックエンド、便利なSDKを提供しています。
認証は、電話番号、パスワード、グーグル、Twitter、Facebookなどのプロバイダーを通じてサポートされている。(32)
認証はFirebaseの様々なサービスとの統合を楽しむことができ、OpenID ConnectとOAuth 2.0を利用し、カスタムバックエンドとの統合も可能です。
Firebase認証の詳細については、Firebase認証とは?
- クラウド・メッセージング
Firebase Cloud Messaging(FCM)とは、無料メッセージングのためのクロスプラットフォームメッセージサービスです。この機能により、アプリの所有者は、データまたは電子メールが同期される場合、およびそのタイミングをクライアントアプリに通知できる。(33)
FCMにより、アプリ所有者は通知を送信して、リテンションを高め、ユーザーを引き込むことができます。Cloud Messagingは、インスタントメッセージのケースで最大4kbのペイロード転送を容易にします。
FCMの詳細については、Firebase Cloud Messagingとは?
- ホスティング
Firebaseは、マイクロサービス、ウェブアプリケーション、その他様々なタイプのコンテンツに対して、スケーラブルでアジャイルなホスティング機能を提供しています。
コンテンツはさまざまなカテゴリにまたがってホストすることができ、ユーザーはSSL保護とシングルクリックでのロールバックを利用することができます。(34)
Firebaseウェブホスティングの詳細については、Firebaseホスティングとは何ですか?
- クラウドストレージ
Firebaseのクラウドストレージ機能は、オブジェクトを含むアプリケーション開発リソースを保存するためのサービスです。
この機能により、ユーザーはGoogleレベルのアップロードとダウンロードのセキュリティにアクセスでき、メディアファイルやユーザーコンテンツの保存に適しています。(35)
Firebase Storageの詳細については、Firebase Storageの記事をお読みください。
- 機械学習
Firebase MLは、Googleの機械学習のパワーを活用し、便利なパッケージを通じてiOSおよびAndroidアプリケーションに実装するモバイルSDKです。(30)
Firebase MLによる機械学習機能の活用は、経験レベルに関係なく誰にでも適しています。
モデルの最適化やニューラルネットワークに関する深い知識は必要ありません。経験豊富な開発者であれば、Firebase ML Kit APIを使用して、TensorFlow Liteモデルなどのモバイルアプリケーションを利用することができます。
Firebase MLについて詳しくは、Firebase Machine Learningとは?
- Crashlytics
Crashlytics は Firebase のリアルタイムクラッシュレポーターで、開発者が問題を追跡し、優先順位をつけて対処できるようにします。Crashlytics の機能は、起こりうる安定性の問題を防ぐために使用できます。(36)
このツールの詳細については、Crashlyticsとは何かという記事をお読みください。
- グーグル・アナリティクス
Google Analyticsは、アプリの使用状況やユーザーエンゲージメントに関する詳細な洞察を提供する高度な分析ツールです。
Firebaseとシームレスに統合され、開発者はユーザーの行動を追跡し、アプリのパフォーマンスを測定し、十分な情報に基づいた意思決定のためにデータを分析することができます。
この統合により、Firebaseアプリからリッチなイベントベースのデータを取得することができ、ユーザがアプリケーションとどのようにやり取りしているかを包括的に把握することができます。
ユーザー属性、アプリの使用パターン、その他の重要なパフォーマンス指標を理解するのに役立ちます。
FirebaseとGoogle Analyticsを組み合わせることで、開発者は統一されたアナリティクス・インターフェイスを通じて、ユーザーのニーズに合わせてアプリをカスタマイズし、ユーザー体験を最適化し、効果的なマーケティング戦略を推進することができます。
- パフォーマンス・モニタリング
Firebase Performance Monitoringは、iOS、Android、Webアプリのパフォーマンス特性を把握するためのサービスです。(38)
パフォーマンスモニタリングSDKは、アプリのパフォーマンスデータを収集するために使用します。これは、アプリのパフォーマンスがいつ、どこで改善できるかを理解するのに役立ち、パフォーマンスの問題を修正するためにその情報を使用できます。
- テストラボ
Firebase Test Labは、アプリケーションテストのためのクラウドインフラストラクチャです。iOSやAndroidのアプリケーションを、多くのデバイスや構成で操作しながらテストすることができます。(39)
また、スクリーンショット、ログ、ビデオなどの結果をFirebaseコンソールで確認することもできる。
- アプリ配信
Firebase App Distributionは、AndroidとiOSプラットフォームにおけるユーザーのベータテストプログラムを包括的に表示する機能です。ユーザーは、新しいリリースの本番段階の前に、有益なフィードバックを受け取ることができる。(40)
ユーザーは、CIサーバーやコンソールを使ってアプリケーションの初期バージョンを送ることができる。アプリケーションのインストールは、テスターにとってもよりアクセスしやすくなる。
- A/Bテスト
A/BテストはFirebaseの機能で、アプリの管理、スケーリング、分析を改善することで、開発者がより良いアプリのユーザー体験を提供できるよう支援します。
ユーザーは、アプリのローンチ前に、UI、機能、キャンペーンの修正を素早くテストすることができます。(43)
- アプリ内メッセージ
アプリ内メッセージングは、アクティブなアプリユーザにコンテクストメッセージングを提供するFirebaseの機能です。ユーザーはアプリ内で特定のアクションを実行することで、さまざまな機能にアクセスしたり、特定のサービスをアンロックしたりすることができます。(45)
Firebaseの代替
Firebaseはアプリ開発のための優れたプラットフォームだが、多くの代替案も同様に注目に値する。2024年にFirebaseに代わるものをお探しなら、こちらがおすすめです。
オルタナティブ | カテゴリー | 主な特徴 | 価格 |
---|---|---|---|
Back4App | オープンソース、ローコード | データモデル、GraphQL/REST API、サーバーレス関数 | 無料、サーバーレスは月額25ドルから |
Parse | オープンソース・フレームワーク | 使いやすいダッシュボード、API、オブジェクト・ストレージ・アダプタ | ダウンロード無料 |
AWS Amplify | フルスタック開発 | データストア、認証、分析、API | 無料、従量制 |
Backendless | ビジュアルアプリ開発 | アプリビルダー、API、リアルタイムデータベース | 無料ティア、15ドル/月より |
Kuzzle | IoTとバックエンド | IoTスイート、バックエンド、PaaS | 無料、サポートプランは月額500ユーロから |
Supabase | オープンソース | データベース、ダッシュボード、認証 | 無料ティア、月額$25より |
Appwrite | オープンソースサーバー | データベース、ストレージ、ジオ、機能 | スターター無料、$15/メンバー/月より |
Ably | リアルタイム・インフラ | PubSubチャンネル、マルチユーザー環境 | 無料、従量制 |
Hasura | GraphQLエンジン | GraphQL API、キャッシュ、セキュリティ | 無料ティア、プロフェッショナルは1時間1.5ドルから |
Nhost | サーバーレス・バックエンド | リアルタイムデータベース、GraphQL API | 無料ティア、月額$25より |
結論
この記事では、Firebaseの長所、短所、価格体系、コア機能、最適な代替プラットフォームについて説明した。
FirebaseはGoogleのモバイルアプリ開発プラットフォームです。エンドツーエンドの開発環境、アプリの市場投入までの時間の短縮、スケーラブルなインフラストラクチャなどの利点がある。
素晴らしい製品だが、Firebaseには欠点もある。クローズドソースのプラットフォームで、ベンダーロックインがあり、NoSQLデータベースしか提供していない。
価格面では、Firebaseは2つの異なるプランで運営されている。1つ目はSparkで、Firebaseのほとんどの機能を網羅し、手厚い無料ティアを提供する。
有料プランはBlazeと呼ばれ、使用量ベースのモデルで動作する。使用された作業量に応じてアプリケーションに課金される。
Firebaseは、その機能を大きく3つのカテゴリーに分類している:ビルド、リリース&モニター、エンゲージです。これらは全て、アプリ開発サイクルの様々な段階で採用されている。
Firebaseには、Back4app、Backendless、AWS Amplify、Parseなど多くの競合サービスがある。
この記事がFirebaseをよりよく理解し、このサービスを使うかどうかを決める助けになれば幸いだ。