マッチングアプリにてUserの一覧をrepeating groupにて表示しています。Userのログイン時間が新しい順での表示をしている際に各Userのログイン時間がリアルタイムに変更されるため、一覧をスクロールして見ている際に何度も並び順が更新されてしまいます。リロードや何かアクションを起こすまでは更新しないようにすることは可能でしょうか?
どのように実装されているかがわかっておりませんが、対象ユーザーのリストをcustom stateなどに保存してそれを表示するようにしては如何でしょうか?
返信頂きありがとうございます。説明不足で申し訳ございません。
①Repeating GroupのDo a search forにて対象のユーザーを検索しています。
②Last Login Dateという項目にて並び替えしています。
③Last Login DateはUserがログイン時にCurrent Date timeを付加しています。
④ご教授頂いたようにUserのlistをcustom stateに保存し表示してみたのですがデータ量が多く表示にかなり時間がかかるもしくは表示されない状況です。データ量が多い場合は難しいでしょうか?
データ量(user_list)の数は何件くらいでしょうか?
5000件ほどあります。
5,500件ほどのユーザーデータで試したのですが、Custom stateでうまく動作しました。
Custom stateからデータを取得すると表示が遅くなるので、デフォルトはCustom stateのデータを表示するようにし、Custom stateに値が無い場合にはデータベースから取得した値を表示するような条件を付ければ表示速度的にも問題はなく動作しました。
思い当たる他の方法も試してみたのですが、うまく動作するのはCustom Stateだけでした。
良い方法をご存じの方、ぜひご意見くださいませ。
他、考え方を変えて最終ログイン日の更新をバッチ1日1回実施するような対応もあるかと思いました。
並び替えで使う最終ログイン日時→1日1回更新
並び替えで使わない最終ログイン日時→随時更新。こちらを使って日次バッチで「並び替えで使う最終ログイン日時」を更新
とか。
ご丁寧にありがとうございます!上記内容で実装してみようと思いますm(_ _)m
ログイン時間の更新頻度を減らす方法を試したところ動きがかなり改良されました。ありがとうございましたm(_ _)m
それは良かったです