2017-05-22 5 views
3

私のアプリはバックグラウンドで実行されます。アプリがバックグラウンドで実行される場合、realtimeDBと同時に接続されますか?または、このアプリがしばらくの間、realtimeDBを使用しない場合、同時に接続を数えませんか?firebase realtimeDB同時接続?

とにかく数えれば、100,000人のユーザーしか得られませんか?

答えて

2

listenerがアクティブである限り、あなたのアプリはrealtimeDBに接続されています。リスニングを停止したい場合は、必要に応じてリスナを削除し、アクティビティのサイクルに合わせてリスナを削除する必要があります。

Androidの場合は、onDestroy()メソッドでこのコードを使用できます。

databaseReference.removeEventListener(valueEventListener); 

希望します。

+0

ご協力いただきありがとうございます。私のアプリは、リスナーを持っていないし、同時接続数をカウントしていない?バックグラウンドで実行しても? –

+0

データベースからの 'DatabaseReference'へのあなたのアプリのリッスンが心配する必要がない場合。 –

+0

@AlexMamo丁寧な回答ですが、詳細が不明です。アクティブなリスナーがなく、5分間の書き込みがない場合、Firebaseクライアントは自動的に切断されます。新しいリスナーを接続したりデータを書き込んだりすると、自動的に再接続されます。それとは別に、リスナーを削除する慣用的な場所は、アクティビティライフサイクルの早い段階で起こるように、 'onPause()'または 'onStop()'です。 –

2

私は順序であなたの3つの部分の質問に答えています..

  1. Firebaseデータベースライブラリは、バックエンドでデータベースへの接続を管理し、これはアプリの起動時にすぐに開始され、これがカウントを開始しますあなたの同時接続に対してこの制限が100kの最大接続制限に達すると、新しい接続は、アプリケーションを閉じるか、指定されたタイムアウト後にオフラインになるか、またはDB接続を強制的に閉じることによって既存の接続が切断されるまで削除されます。

    FirebaseDatabase.getInstance().goOffline()

    あなたはしかし、特定のクライアントがFirebaseDatabase.getInstance().getReference(".info/connected")これでリスナーを使用して接続されているかどうかがローカルに動作し、明示的にFirebaseDatabaseクラウドインスタンスに接続しません知ることができる。さらには、一度here

  2. を読み取ることができます上記の接続リスナを実装すると、リスナーが接続されておらず、最後の60秒でアプリに.setValue()のようなDB操作が行われていないと、接続が自動的に切断されるようにSDKがこれを動的に管理することがわかります。 ValueEventListenerが存在するとこれがオーバーライドされ、DBとの継続的な接続が保証されます。再度これを無効にすることができ、明示的に呼び出して接続を切断することができます。FirebaseDatabase.getInstance().goOffline()

  3. 最大同時ユーザー数は100万人に達しています。 Firebase Plans

    に見られるように 炎とブレイズ計画上のデータベース10万台の同時接続の制限があります。詳細については、価格に関するFAQを参照してください。あなたがこれを渡り、スケーリングのためにあなたが制限値を増やす必要がある場合

    、あなたのアプリケーションを確実にするために明示的supportをGoogle Firebaseチームに依頼することができ、彼らはケースバイケースで、これを処理するように、必要に応じて拡張することができます必要です..

    "同時データベース接続"とは何ですか?

    同時接続は、モバイルデバイス1台、ブラウザ タブ、またはデータベースに接続されたサーバーアプリに相当します。Firebaseは、あなたのアプリの データベースへの同時接続数を厳しく制限しています( )。 FirebaseとGoogleの ユーザーを悪用することを防ぐため、これらの制限が設けられています。

    スパークプランの上限は100で、上げることはできません。 FlameとBlazeの 計画では、データベースごとに同時接続数が100,000に制限されています。 100,000を超える同時接続が必要な場合は、 Firebaseのサポートにお問い合わせください。

    この制限は、ユーザーのすべてが一度に接続するわけではないため、アプリの合計ユーザー数と同じではありません( )。 最高の同時データベース接続を監視し、アップグレードするか、必要に応じてさらにデータベース を追加することをお勧めします。

+0

[60秒間の非アクティブリファレンス](https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state) Androidの場合、Firebaseは接続状態を自動的に管理して帯域幅とバッテリの使用量を削減します。クライアントにアクティブなリスナーがなく、保留中の書き込み操作やonDisconnect操作がなく、goOfflineメソッドによって明示的に切断されていない場合、Firebaseは60秒間使用しないと接続を終了します。 – Gowrav

関連する問題