Firebase RTDB 목록을 사용하여 채팅 앱을 구현하고 있습니다. 그런 다음AngularFire 목록에서 새 항목 만 가져 오기
public monitorConversation(conversationId): Observable<any> {
return this.afDB.list(`/conversations/${conversationId}/messages`).stateChanges();
}
내가 구성 요소 (페이지)에서 호출 같은 : 여기에 단순화 된 데이터 서비스 구현의
msgList: Observable<any>;
this.msgList = this.dp.monitorConversation(conversationId);
this.msgList.subscribe(message => {
console.log('new msg:', message.payload.val());
return message.payload.val();
});
});
원하는 결과를마다하는 새 메시지가 대화에 추가됩니다되어, I 새로운 메시지를 얻으십시오. 무슨 일이 일어나고 있는지 나는 전체 메시지 목록을 얻고있다. 필자가 염려하는 점은 메시지 목록이 커짐에 따라 목록을 다시 표시해야하므로 UI 성능이 저하되기 시작합니다. 불필요한 트래픽을 보내는 대역폭은 Firebase에서 전체 목록을 검색하는 것으로 가정하므로 잘.
변경되거나 새 항목 만받을 수있는 방법이 있습니까? 항목에는 목록에 $ 키가 있으므로 어떤 항목인지 알 수 있습니다.
감사합니다. AngularFire2에서 내가 복제하려고하는 버그를 발견했다고 생각합니다. 목록에 둘 이상의 서브 스크립 션이있는 경우 (조회가 아 T), 어떤 이유로 목록을 변경하면 모든 레코드가 리턴됩니다. 같은 목록을보고 있던 다른 Observable의 구독을 취소하면 작업이 명시됩니다. – regretoverflow