2017-03-10 1 views
0

私はApp Engine上でバックエンドアプリケーションを実行しています(まだ無料プラン上にあります)。また、Firebaseリアルタイムデータベースの設定でクライアントモバイルアプリケーションをサポートしています。クライアントがデータベースを変更すると、その変更を確認し、出力を計算するためにバックエンドが必要になります。Firebase:クライアントがdbを変更したときにApp Engineを起動する方法

私のApp Engineインスタンスを起床させ、Firebaseポートで常に待ち受けて、データベース内のどこかで変更を待つことができますが、インスタンスが24時間稼働しても7分の1になり、ロードバランシングはサポートされません。

Firebaseに切り替える前に、私のクライアントは、実行したい変更のREST要求を送信して手動でバックエンドを起動させました。今、Firebaseはクライアントが直接変更を行うことを許可します。私は彼らが手動でリクエストを出す必要はないと考えていました。私はクライアントから要求を生成し続けることができますが、何らかの理由で要求が届かず、成功する前にクライアントのスイッチを切った場合にサーバーに通知できないため、その解決策は堅牢ではありません要求を送信する。 Firebaseには変更を保持するための独自のメカニズムがありますが、私の要求にも同様のメカニズムが必要です。私はそこより簡単な解決策があると思っています。

DBが変更されたときに、Firebaseが自動的にリクエストを生成してApp Engineを起動させる方法はありますか?

+1

こんにちは、リアルタイムである必要がありますか?または、リスナを4時間ごとにトリガすることは許容されますか? –

+0

リアルタイム。ユーザーは数秒以内に計算結果を期待します。 – jazzgil

+0

だから、私が念頭に置いていたこと(https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio)には、手動スケーリングのために24/7を実行するインスタンスが必要ですしたがって、無料のプランには適合しません。これは以下のDan Cornilescuの答えに沿ったものです。 –

答えて

2

新しい(ベータ)firebaseの雲の機能を見てください。それで、node.jsコードを実行して、データベースエンジンイベントの前処理と呼び出しを行うことができます。

https://firebase.google.com/docs/functions/

+0

残念ながら、このオプションは無料の「スパーク」プランでは不可能と思われます。 – jazzgil

+0

"ペイパーユース"プランの場合は、クォータを渡さないと引き続き無料です。これまでのところ私のケースでしたが、請求のサイクルが完了していない可能性があります。更新:ちょうど私の請求をチェックした、それは無料ではないが、私は軽い使い方でホスティング&データベースを持っていて、私は過去の月の期間に$ 0.05の帯域幅を請求されたが、まだクラウド機能の料金は見ていない。 –

+0

私は現在、無料のクォータに拘束されることが、驚くべき未知のチャンスを危険にさらすよりも好む。 – jazzgil

0

に見てください:

バックのApp Engineにイベントを投稿

App Engineは現在、双方向ストリーミングHTTPに 接続をサポートしていません。クライアントがサーバーを更新する必要がある場合は、明示的なHTTP要求を に送信する必要があります。

代わりに、無料のクォータに収まりません。しかし、ここはとにかくです。 Configuring the App Engine backend to use manual scalingから:

App Engineの標準的な環境でFirebaseを使用するには、 手動スケーリングを使用する必要があります。これはFirebaseがバックグラウンドスレッドを使用して、 が変更をリッスンし、App Engineの標準環境で の有効期限の長いバックグラウンドスレッドが手動でスケーリングされたバックエンドでのみ使用できるためです。 インスタンス。

関連する問題