私は、すべてのメッセージをローカルSQLite DBとFirebaseリアルタイムDBの両方に保存するAndroidチャットアプリを持っています。Androidのfirebaseリスナーは、recyclerviewのonBindViewHolderの中にあります。
RecyclerViewにメッセージを表示すると、私は自分のローカルDBからそれらのメッセージを照会します(ローカルに保存されている追加データがあるため、リアルタイムDBには保存されません)。
リアルタイムのDBから取得した、表示されたメッセージの送信と読み取りのステータスをリアルタイムに更新する必要があります。
リサイクラービューのonBindViewHolder内の各メッセージに値イベントリスナーを設定しても問題ありませんか? 。
私は、現在画面に表示され、サーバーからのメッセージの全リストを取得していないメッセージの変化を聞くこの方法で(私が必要まさに)
2質問: - この解決方法は問題ないのですか、それとも良い方法がありますか? - リサイクラービューでは表示されていないアイテムのリスナーを削除する必要があります。それ、どうやったら出来るの?
私はFirebaseUIを使用していませんが(私の問題は解決していると思いますが)、ローカルデータベースのデータを表示し、サーバーからではなく、firebaseからの1つのフィールドの更新情報のみを取得します。リアルタイムDB。