私はFirebaseを使ってiOS匿名チャットアプリを実装しています。Firebaseの特定のデータセットを観察してください
私のアプリにはチャットルームのリストがあり、グループのチャットルームに参加するFacebookのメッセンジャーが参加します。 ユーザーが部屋に参加する場合は、データベースの構造は一例AAA
とBBB
ため、
rooms
|- AAA
|- messages
|- "aaaaa"
|- "bbbbb"
|- "ccccc"
|- BBB
|- messages
|- "ddddd"
|- "eeeee"
|- CCC
|- messages
|- "fffff"
|- "ggggg"
...
のように見えます。アプリはローカルストレージにAAA
とBBB
を保存します。 AAA
またはBBB
に追加された新しいメッセージは確認できますが、CCC
は表示されません。
私はFirebaseの文書を読みました。私はそれを行ういくつかの方法があるかもしれません。
- 全体
rooms
ノードを観察し、アプリでAAA
とBBB
をフィルタリングします。しかし、私はそれがあまりにも多くの場合rooms
がある場合、パフォーマンスの問題が発生すると思う。データサイズが非常に大きいです。 AAA
とBBB
について別々のオブザーバーを作成します。それは私の問題を解決する可能性がありますが、私のユーザーがあまりにも多くの人々に参加する場合rooms
。多くのノードを観察することは理にかなっていないように見えます。rooms
を同期できるルールを設定します。しかし、私はユーザーが部屋に入ることを記録しなければならない。匿名ユーザーとチャットの関係を管理する必要があります。
私の問題を解決できる方法はありますか?
は多分
['AAA', 'BBB'].observe(.childAdded, {
// do something
})
が好き、または任意の提案を歓迎します!
ありがとう