2017-12-20 3 views
1

接続制限を超えたときにしばらく待つと言っているユーザーに、テキストまたはトーストを表示します。Firebase Realtimeデータベースの制限(100同時接続)に達しているかどうかをプログラムで確認する方法は?

Firebase Realtimeデータベースへの接続の最大許容数を超えていることを確認するにはどうすればよいですか? 101番目の接続が接続しようとしているときに、何らかの戻り値がありますか?

+0

私はすべての開発者が高価なサービスなどを購入するお金を持っているわけではないことを知っています。しかし、経験則として、最高のツールを使用して、お金を買うことができます。あなたのアプリを店にアップロードすると、少なくともあなたのdevアカウントに25ドルを費やす必要があります。 Firebase Flame計画もそうです。それはまだ制限されています(100k接続ではなく100)ので、何も超えて心配する必要はありません。また、悪いUXのダイアログを表示するためのハックコードを書く必要がなくなり、ユーザに待つよう指示することができます。 – JacksOnF1re

答えて

1

主な質問は、concurrent connectionsという制限に達するとどうなりますか? concurrent connectionsについては、number of writes per secondsを意味します。

この時点で、Firebaseデータベースは、すぐにディスクに書き込めない書き込み回数をキューに入れ始めます。言い換えれば、Firebaseはbuffer of the pendings write operationsを発行します。書き込みボリュームがダウンすると、バッファにキャッシュされ始めます。

あなたの質問に対する答えは、いいえ、Firebaseのリアルタイムデータベースが限界に達するかどうかをプログラムで知る方法はありません。戻り値として最大接続数を持つメソッドはありません。しかし、あなたがCompletionListenerを添付することができますworkaroungがあります。書き込み操作を開始してから完了するまでの時間がgoes upの場合は、バッファリングされている(キューに入っている)ことを意味します。これは、100同時接続に達した時点を知る方法です。

+0

第101人が接続しようとしているとします。その後、人は接続を確立することができます。私は101番目の人がメッセージを入力してsendを押すことができます。メッセージはデバイスから送信され、firebaseバッファに保存されます。そのキャッシュされたメッセージは、誰かが切断するまでバッファに格納され、メッセージはリアルタイムのDBに格納され、すべてに届くでしょうか? –

+0

問題は接続を確立することではありません。ユーザーは確実に接続されます。そして、はい、ユーザーはメッセージを入力して送信を押すことができ、メッセージはキューに直接送られます。ユーザが切断すると、メッセージはキャッシュされたデータベースに確実に書き込まれますが、これはFirebaseサーバ上でオンラインで行われていることとは何の関係もありません。ただし、1秒あたりの最大書き込み数に達すると、Firebaseデータベースをもう使用できなくなるわけではありません。あなたは遅れてデータベースを使用することができます。 –

+0

これは役に立ちます。ありがとう –

関連する問題