2017-03-29 3 views
0

私はアンドロイドアプリを開発しており、100人以上のユーザーがいると期待しています。アプリにはログアウトボタンがありますが、ログアウトすると疑わしいです。 150人のユーザーがログインしているのにバックグラウンドでログインしていると、150の同時接続があるということですか?私は同時接続でいくつかの質問を読んだが、同時に誰かが正確な接続をすることができます。 ユーザー150人 - ログイン(バックグラウンド) - 別の時間にアプリを開く - ? これがfirebaseの無料プランを上回る場合、どのように防止するのですか?ログイン用に電子メール/パスワードを使用します。アプリのログアウトしていないユーザの数はfirebaseの同時接続数と同じですか?

答えて

4

Firebaseデータベースを使用するアプリケーションを起動すると、Firebaseサーバへの永続的な接続が確立されます。これは、バックエンド上の1つのアクティブな接続としてカウントされます。

ときの接続は分けることができます。ユーザーは任意のデータを書き込んでいないと、数分のための任意のアクティブなリスナーがありません(現在は5分、それは変更することができます)

  1. あなたはアプリがフォアグラウンドまたはバックグラウンドで動作しているかどうか

コード内でgoOffline()を呼び出すFirebase SDKとは無関係です。しかし、Androidライフサイクルイベント(onPause()など)を使用して、そのような遷移を検出し、リスナーを削除することができます(条件1になる)。

また、アプリがバックグラウンドになっていると、AndroidオペレーティングシステムはいつでもクライアントからFirebaseのバックエンドへの接続を終了することがあります。それはあなたのデバイスが持っているAndroidのバージョンと風味に依存します。

最終的なオプション(コメントで指摘されたFirebaser Doug氏)は、自動リソース管理を有効にすることです。自動リソース管理を有効にすると、クライアントは基本的に、アプリがバックグラウンドになるとgoOffline()、フォアグラウンドに戻るときはgoOnline()となります。

+0

これを入力していただきありがとうございます。かなりクリア –

+0

setAutomaticResourceManagementEnabledはこの動作に関係していますか? https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp.html#setAutomaticResourceManagementEnabled(boolean) –

+0

私は知らなかった設定です。私はすばやくそれを探して、自動リソース管理を有効にすると、アプリケーションがバックグラウンドになっているときには 'goOffline()'を実行し、フォアグラウンドに戻るときには 'goOnline()'を実行します。 –

0

ユーザーがログインしていて、アクティブではない、つまりデータベース操作を実行していない場合、同時接続でカウントされません。

同時接続とは、user appとfirebase realtime database間のアクティブな接続を指します。

+0

私の答えに満足しているなら、親切に投票してください。 – ujjwal

+0

回答ごとに[投票する]必要はありません(https://meta.stackexchange.com/q/208130/152597)。 –

+0

@TravisChristian次回はこのことを覚えておきます。 – ujjwal

関連する問題