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
})
을 좋아하는 또는 어떤 제안을 환영합니다!
감사합니다.