2017-04-15 1 views
0

동 기적으로 호출하면 여러 데이터베이스 요청을 일괄 처리하는지 여부에 관계없이 Firebase 데이터베이스가 얼마나 똑똑한 지 알고 싶습니다.Firebase 데이터베이스 일괄 처리

예를 들어, 아래에서 두 개의 동일한 요청을하면 백엔드에 마지막 요청 만 보내거나 둘 ​​다 보내겠습니까? 또한

firebase.database().ref('test').set(1); 
firebase.database().ref('test').set(2); 

, 나는 같은 위치를 동 기적으로 여러 번 읽으면,이 백엔드를 여러 번에 요청을 보낼 것입니다, 또는 같은 위치를 읽을 것을 이해한다?

firebase.database().ref('test').once('value', snap => {}); 
firebase.database().ref('test').once('value', snap => {}); 

일부 경로를 수신하는 오버 헤드는 무엇입니까? 메모리 및 대역폭 측면에서. 사용자 경험에 영향을주지 않을 수있는 사용자 당 최대 청취자 수는 얼마입니까?

firebase.database().ref('...').on('value', snap => {}); 

답변

0

여기 firebaser 첫 번째 한 번 두 번째 쓰기를 허용합니다 (서버에만 적용됩니다) 유효성 검사 규칙이있을 수 있기 때문에 이러한 쓰기가 함께 병합 할 수있는 방법이 없습니다

한 번씩 각 쓰기 요청이 데이터베이스로 전송됩니다. 따라서 첫 번째 스 니펫에서 두 가지 쓰기 작업이 전송됩니다.

Firebase는 수신 대기중인 각 위치의 데이터 만 검색합니다. 따라서 활성 리스너를 유지하면 해당 위치의 두 번째 리스너는 캐시에서 기존 데이터를 가져옵니다.

once()을 사용하고 있기 때문에 시나리오에서는 활성 청취자를 유지하지 않습니다. once()을 사용하면 읽기 결과가 클라이언트에 수신되는 즉시 리스너가 제거됩니다.

두 줄을 서로 직후에 실행해도 동일한 읽기가 가능합니다. 그러나이 줄이 더 멀리 떨어져 있으면 첫 번째 수신기가 이미 제거되어 데이터가 이미 캐시에서 제거됩니다.