IT/firebase

firebase count 구하기

generator 2016. 6. 11. 15:34
//1.전체 스냅샷에서 구하는 방법
path.once("value", function (snapshot) {
totalcount = snapshot.val().count;
}

//2.따로 데이터로 등록 될때 마다 전체값 증가 시켜 주는 방법
var rowcount = $firebaseObject(path.child('rowcount'))
rowcount.$loaded().then(function (snap) { //리스트 카운트 조회
var cnt = snap.$value;

//없으면 1 있으면 +1
if (cnt == null) {
cnt = 1;
} else {
cnt += 1;
}

//카운트 갱신
var obj = $firebaseObject(path.child('etc'));
obj.rowcount = cnt;
obj.$save().catch(function (error) {
console.log("Error:", error);
});
}



전체 스냅샷에서 구하는 방법이 간단하기는 하나

base64이미지를 저장한다든지 큰내용을 가지고 있을 경우 전체수를 조회하기 위해서

너무 많은 시간이 걸리게된 다.


이럴경우 두번째 방법으로 등록될때마다 1씩 증가 시켜 주면서 토탈을 관리하는 방법이다.

이경우 속도는 빠를 수 있으나 카운트가 실제로우랑 미스매치 되는 경우가 발생 할수 있음을

감안해야 한다.


이래 저래 RDB가 편하긴 하다.