web-dev-qa-db-ja.com

Google App EngineとFirebase

どのオプションを使用するかを決定しようとしています。 (またはより良い場合は別)これは、大量の通知とデータベース書き込みがあるメッセージングタイプのアプリ用です。

オプション1-Cloud EndpointsとCloud Datastoreを使用するGoogle App Engine
長所:

  • 私が望む方法でAPIを構築できます。
  • 可変的な、測定できる、登れる、はがせる

短所:

  • 通知システムを実装するためのさらなる作業。 (最終的にFirebase Cloud Messagingになります)

オプション2-Firebase
長所:

  • Firebase Database、Firebase User Authentication、Firebase Cloud Messagingを使用できること(通知)
  • すべてのデバイスの詳細な使用統計

短所:

  • APIなし

オプション-Google Cloud EndpointsとFirebaseを組み合わせることは可能ですか?

45
iam10k

まず、Googleドキュメントのグラフをご覧ください こちら 提供するさまざまなモバイルアプリバックエンドサービスの優れた比較とコントラストを確認してください。チャートは次のとおりです。

enter image description here

私の個人的な意見は(更新済み):

オプション1-Cloud EndpointsとCloud Datastoreを使用するGoogle App Engine
長所:

  • 独自のAPIを記述する安らかなパターンについて、より多くを学びます。また、安静なAPI呼び出し(iOSまたはAndroidのいずれか)を行う方法を学ぶことを余儀なくされますが、これは業界で非常に貴重なスキルです。 Firebaseの種類はあなたのためにすべてを行い、あなたはこのようなことを学ぶことはありません。
  • 自分で作成する必要がありますが、APIメソッドとGoogleクラウドメッセージング、および作成するメソッドのタイプを使用して、本当に創造的にすることができます。彼らは本当に何でもでき、どんなデータベースにも接続できます(例えば、MySQL、SQL Server、Datastore)。 Firebaseでは、jsonベースのデータベースを使用する必要があります。アプリにSQLデータベースを使用することはお勧めしませんが、ニーズは人によって異なります。

短所:

  • より多くの作業が必要であり、最初はデータストアに頭を包むのが難しい場合があります。 SQLのようなリレーショナルデータベースとは異なります。
  • また、非常に非効率的で実行に時間がかかるメソッドとクエリを作成することで、「自分で足を踏み入れる」ことができる領域がいくつかあると感じています。
  • 新しいアプリにとって厄介なことの1つは、GAEの自動スケーリングです。簡単に言えば、約15分間APIにヒットする人がいなければ、すべてのインスタンスが停止します。新しい呼び出しが行われると、インスタンスを起動してAPIメソッドを実行するのにかなりの時間がかかります。これは、新しいユーザーがアプリに何か問題があり、そのために使用を停止する可能性があるため、新しいアプリにとって面倒な場合があります。手動スケーリングを行うことはできますが、その場合、常にインスタンスを保持するには費用がかかります(この記事の執筆時点では、請求済みアプリから約27ドル/月)。この問題と solution の詳細については、こちらの私の投稿を参照してください。

オプション2-Firebase
長所:

  • 初心者でも簡単に使用できるようになっています。Firebaseには、プッシュ通知の送信やデータの同期など、やりたい一般的なことを行うための豊富なチュートリアル/コースがあります。
  • GAEとは異なり、すぐに使用できます。インスタンスを起動しません。これにより、高速データ取得でユーザーに印象付けたい新しいアプリに最適です。
  • アダプター(Android)やネットワーク(モバイルアプリ)などの複雑なことの核心を学び、Firebaseクラスに依存することができます。多分それはもう少しnoobフレンドリーですか?繰り返しになりますが、ドキュメンテーションは素晴らしく、すぐに使用できます。非効率なクエリを作成することで、自分の足を撃つ可能性は低くなると思います。

短所:

  • Firebaseはクライアントコードに大きな負荷がかかります。 AndroidとiOSアプリが必要な場合は、両方に多くのクライアントコードを記述する必要があります。GAEでは、そのロジックの多くはGAEアプリで抽象化されます。アプリでデータベース管理者を本当に必要とせず、Firebaseを知っているiOS + Android開発者のみがいる場合に有利です。しかし、私にとってこれは大きな転換でした。
  • FirebaseがParse.comのようになったらどうなるか... Facebookが、それをもうサポートしないと発表した場所。それは本当にひどいでしょう! Firebaseに縛られ、安らかなAPIを作成する方法に関するプログラミング知識を開発していません。ただし、GoogleはFirebaseに多額の投資をしており、GCMをFirebase Cloud Messagingにアップグレードしているため、Firebaseに大きな計画があり、どこにも進まないことは明らかです。だから、これは「詐欺」とは思わないが、心に留めておくべきだろうか?

おそらくそれらを組み合わせるためのリンクで詳細をお読みください。

68
Micro

Firebaseの多くの議論(上記の質問と回答を含む)が、私にとって非常に重要な違いである価格について言及していないことに戸惑っています。

Firebase価格 スケジュールです。

Datastore および [〜#〜] gae [〜#〜] の価格設定は次のとおりです。

これらを比較するのは難しいかもしれませんが、私の解釈では、Firebaseは非常に高価です。

そして、これは驚くことではありません。 GAEとデータストアは、Amazon、Microsoftなどの同様のサービスと競合する必要があり、競争は激しいものです。もちろん、これらのサービスはインフラストラクチャやSQLほど一般的ではありませんが、価格が競争力を維持できるほど十分に近いようです。

一方、Firebaseは、Parseのような他のバックエンドサービスと競合するプレミアムサービスであり、一度使用することに決めたら、切り替えるのは非常に難しいと思います。 GoogleがFirebaseを非常に強力に推進しているのは驚くことではないはずです。

私の意見では、これの結果はFirebaseが低ボリュームで利益率の高いサービスに適しているということですが、お金を稼ぐために大量に依存する典型的な消費者指向の広告サポートサービスを作成する場合は、 Firebaseのコストが利益を損なう可能性があります。

2017-10追加

Firestoreの最近のリリースで、Firebaseをもう一度見ました。

FirestoreをAndroidアプリに使用することは、Google Play開発者サービスに大きく依存しているFirebaseクライアントライブラリを使用することを意味します。つまり、 Amazon Fireタブレットを含むGoogle以外のデバイス、および(おそらく)中国市場全体。

46
Tom

解決策を見つけるのに苦労しているときに最近学んだことの1つは、firebaseがデバイスからデバイスへの通知に関する回避策を提供していないことです。サーバーからデバイスへのプッシュ通知を提供しますが、セットアップは非常に簡単です。しかし、以前の機能の欠如は非常に重要であり、陰謀説があります。それは彼らが他のグーグル製品を使用するようにあなたを押し付けようとしているからです。

あるいは、最初は開発されていなかったので、彼らはそれを同じままにしたかもしれません。アプリエンジンは、この目的のためにFirebaseとデバイスを接続する方法であると考えたため、この場合はFirebaseと他のgoogle製品の両方を組み合わせることを好みます app engine 。画像処理などのバックエンド処理をさらに行う予定の場合は、 アプリエンジンと計算エンジン を見て、Firebaseと統合できることを確認し、仮想的に強力なバックエンドソリューションを実現します。

1
TheeBen