1
Android 앱에서 Firebase Realtime Database에 문제가 있습니다.ValueEventListener가 onDataChange 메소드를 한 번만 실행했습니다.
실시간으로 목록을 업데이트하려고합니다. 그러나 업데이트는 앱 시작에서만 작동합니다. 자동으로 업데이트되지 않습니다. 그래서 업데이트가 필요할 때마다 앱을 다시 시작해야합니다.
누락 된 부분이 있습니까? 어떤 도움을 주셔서 감사합니다. 감사합니다
문제점 : 청취자가 응용 프로그램을 재시작 할 때만 onDataChange
메소드를 트리거했습니다. 데이터가 정확합니다. 그러나 그 후에 청취자는 작동하지 않습니다.
:
mRef = FirebaseDatabase.getInstance().getReference();
mPostRef = mRef.child(DbUtils.POST_CHILD);
mPostRef.keepSynced(true);
mPostRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<Post> objList = new ArrayList<>();
for(DataSnapshot objSnapShot: dataSnapshot.getChildren()){
Post obj = objSnapShot.getValue(Post.class);
obj.setKey(objSnapShot.getKey());
objList.add(obj);
}
mAdapter.addAllAndNotify(objList);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i("Posts", "Listener was canceled");
}
});
데이터가 변경되고 있습니까? Firebase 콘솔을 사용하여 데이터를 변경하십시오. 버전 10.0.1로 코드를 실행했으며 데이터가 변경되면 onDataChange()가 실행됩니다. –
콘솔에서 데이터를 변경했습니다. 코드가 작동하지 않습니다. 변경할 때마다 데이터가 업데이트됩니까? (나는 9.8.0을 사용하고 있으며, 10.0.1을 시도 할 것이다). 당신의 도움을 주셔서 감사합니다. –
'Log' 문을 onDataChange()에 추가하여 콜백이 언제 발생하는지 확인합니다. –