많이 다운로드 쿼리는 다음과 같다 :중포 기지 쿼리 데이터
검색어 1
reference.orderByChild("started").equalTo(true)..addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
gameOnList.clear();
for (DataSnapshot gamesSnapshot : dataSnapshot.getChildren()){
Game game = gamesSnapshot.getValue(Game.class);
if(game.isStarted()) gameOnList.add(game);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
이 쿼리는 5 개 결과를 반환하지만, 소모량은 모든 레코드를 반환하는 것처럼 1.5Mb입니다. 무슨 일이 일어날 수 있습니까?
쿼리 2
Reference.limitToLast (5) .addValueEventListener (new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
gameOnList.clear();
for (DataSnapshot gamesSnapshot : dataSnapshot.getChildren()){
Game game = gamesSnapshot.getValue(Game.class);
if(game.isStarted()) gameOnList.add(game);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
또한 5 개 레코드를 반환하지만,이 경우에 10 킬로바이트 소비 :
나는 데이터의 소비를 발생하지 않는 다음 쿼리와 함께, 또 다른 테스트를 수행했다.
과도한 데이터 소비없이 어떻게 첫 번째 쿼리를 만들 수 있습니까?
상담하는 데이터베이스에는 약 1800 개의 레코드가 있습니다.
Game:
-KW_-cgwIPt5E8lzguds:
level1: array
level2: array
level3: array
level4: array
player1: String
player1Pts: int
player2: String
player2Pts: int
player1End: boolean
player2End: boolean
started: boolean
completed: boolean
-KW_-cgwIPt5E8lztyd5:
level1: array
....
이러한 각 방법의 데이터 소비를 어떻게 측정합니까? – ishmaelMakitla
Firebase 데이터베이스에서 데이터를 선택하면 모든 게임에 대한 모든 세부 정보가 필요합니까? 또는 그 키/다른 값일까요? https://firebase.google.com/docs/database/web/structure-data#avoid_nesting_data – Nirel
'시작된'자녀에 대한 색인이 있습니까? – vzsg