FirebaseのリアルタイムDBを使用しているiOSアプリケーションでチャット機能を開発しています。私は 'タイプインジケーター'を実装しました。ユーザーが入力を開始すると、フラグがDB内で真に反転されます。Firebaseチャットアプリ - タイムアウト後にタイピングインジケータを停止する
ユーザーからの活動がない一定時間(約5秒)後にこれをfalseに戻すには、どのような最も安全な方法がありますか?これは、ユーザーが入力を開始するたびにタイムアウトをリセットするだけで、クライアント側で簡単に行うことができます。ただし、クライアントがクラッシュした場合や、このタイムアウト前にユーザーが終了した場合はどうなりますか?
Firebaseのクラウド機能を使用して、キーを監視してサーバでタイムアウトを行うことで、インジケータがtrueに設定されるたびに機能を実行する方が良いでしょうか?物事が拡大し始めるときには、これはより安全に聞こえるが、かなり高価になる。
どのような考えですか?
[-onDisconnectSetValue:](https://firebase.google.com/docs/reference/ios/firebasedatabase/api/reference/Classes/FIRDatabaseReference#/c:objc(cs)FIRDatabaseReference(im )onDisconnectSetValue :)クライアントが切断すると、ノード値をfalseに設定できます。 Firebaseにはタイマーがありません。両方のクライアントが切断されている場合(受け入れられた回答ごとに)、システム全体が同期しなくなります。 – Jay