这是我在
Android应用程序中使用时间戳的firebase数据的简单查询
Query recentStaticJobQuery = reference.child(AppConstants.WORKINDIA_JOBS) .child(AppConstants.WORKINDIA_STATIC_JOBS) .orderByChild(AppConstants.TIMESTAMP) .startAt(lastStaticJobSyncTime); recentStaticJobQuery.addListenerForSingleValueEvent (staticJobDownloadListener); ValueEventListener staticJobDownloadListener = new ValueEventListener() { @Override public void onDataChange(final DataSnapshot dataSnapshot) { Log.i("Firebase","Called") } @Override public void onCancelled(DatabaseError databaseError) { Log.i("Firebase","onCancelled") } };
如何避免onDataChange在android Firebase中被调用两次?
解决方法
使用SingleEventListener而不是ValueEventListener像这样
Firebase ref = new Firebase("YOUR-URL-HERE/PATH/TO/YOUR/STUFF"); ref.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { String value = (String) dataSnapshot.getValue(); // do your stuff here with value } @Override public void onCancelled(FirebaseError firebaseError) { } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。