1
私は私のAndroidアプリにFirebaseリアルタイムデータベースとの問題に直面していますOnDataChangeのメソッドをトリガー。私がしようとしています何ValueEventListenerは一度だけ
はリアルタイムでリストを更新することです。しかし、アップデートはアプリの起動時にのみ動作します。自動的には更新されません。だから、更新が必要なときはいつでもアプリを再起動する必要があります。
欠けている部分はありますか?私はどんな助けにも感謝します。おかげ
問題: リスナーが唯一のアプリケーションの再起動で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で試してみます)。ご協力いただきありがとうございます。 –
'OnDataChange()'に 'Log'ステートメントを追加して、コールバックがいつ発生するかを確認します。 –