2013-10-30 1 views
0

저는 브라우저 클라이언트 측과 서버 측 NodeJS 모두에서 Firebase를 사용하여 사이트를 쉽게 검색 할 수 있습니다. 그래서 저는 서버 측 항목 목록을 렌더링 한 다음 클라이언트 측에서 새 업데이트를 듣고 있습니다.그 순간부터 child_added의 알림을받습니다.

on('child_added')에 적합한 체인을 찾을 수 없어서 특정 ID 시작부터 child_added 알림을 듣기 시작합니다.

endAt() 또는 startAt()의 경우 이러한 함수는 endpoint inclusive이므로 마지막 자식도 반환합니다.

다른 answersendAt().limit(1)을 사용하고있는 것처럼 보입니다.하지만 갭 사이에 여러 개의 child_added가있을 수 있으므로 결함이있는 것처럼 보입니다. 또한 endAt()이 포함되어 있으므로 endAt().limit(1)은 마지막으로 추가 된 하위를 반환합니다.

답변

1

당신은 다음, once('value')를 수행 once() 콜백에서 .on('child_added') 리스너를 시작하고 once() 호출에 처음 읽는 사람들과 새로운 아이들의 이름을 비교할 수 있습니다.

이것은 약간 못 생기고, 여러 개의 어린이 이름을 메모리에 보관해야합니다. 유스 케이스를 좀 더 자세하게 설명하면 사람들이 더 나은 솔루션을 생각하는 데 도움이 될 수 있습니다. 향후 추가 기능 만로드해야하고 쿼리 끝점을 제거 할 수 없도록 사이트가 어떻게 설계되어 있습니까?

+0

이 작업은 모든 어린이를 로컬 메모리에로드해야하고 일부 주요 비교 작업을 언급 한대로 필요합니다. 그것을 할 수있는 몇 가지 방법이 있어야합니다. –

0

당신은 push() 자신의 더미 데이터, 다음 startAt(null, the-name-of-the-dummy).on('child_added'), 첫 번째 결과를 던질 수 있습니다.

+0

사실 내 현재의 솔루션이지만, 충분히 깨끗해 보이지는 않습니다 .... –

관련 문제