2016-07-29 18 views
1

이 나는 ​​참으로 setPersistenceEnabled 설정하고 나는 addValueEventListener를 사용하고 내부 onDataChange 방법입니다. 내 앱은 해당 메소드가 호출 될 때마다 항상 서버의 데이터를 다운로드합니까, 아니면 앱에서 캐시의 데이터를 가져올 수 있습니까? 오프라인 일 때 데이터가 캐시에서 비롯된 것입니다. 당신이 addValueEventListener()와 수신기를 연결하고 데이터를 로컬 디스크 캐시에 사용할 수있는 경우중포 기지 실시간 데이터베이스 addValueEventListener

#askFirebase 

답변

3

onDataChange() 방법은 바로 캐시의 데이터로 실행됩니다.

중포 기지의 클라이언트는 데이터에 대한 업데이트 서버에 등록합니다. 업데이트 된 데이터를받을 때마다 onDataChange()이 다시 호출됩니다.

로컬 디스크 캐시에 오래된 데이터가있는 경우 에 "빠른"연속으로 두 개의 전화가 수신 될 수 있습니다. 하나는 부실 데이터이고 다른 하나는 최신 데이터입니다. 현재 데이터가 부실했는지 여부를 확인할 방법이 없습니다. 당신이 addListenerForSingleValueEvent()를 사용할 때

이 정말 까다로운 상황을 생성하는 유일한 시간이다. 처음으로 onDataChange() 이벤트 만 받으므로 부실 데이터 만 가져올 수 있습니다. 이것이 디스크 지속성을 단일 값 이벤트 리스너와 함께 사용하지 않는 것이 좋습니다.

관련 문제