【发布时间】:2016-09-03 08:02:27
【问题描述】:
这是我在 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 中被调用两次?
【问题讨论】:
-
recentStaticJobQuery.addListenerForSingleValueEvent (staticJobDownloadListener);是否被调用了两次? -
没有。我首先测试过的
-
如果您看到单值事件侦听器的
onDataChange()被调用两次,请确保您没有在两个地方附加侦听器。 -
嗨!您可以在附加和分离侦听器的位置显示您的活动的整个代码吗?也许,您也在 auth 事件中附加 onResume 和 Firebase Auth?
-
@Slava 对不起,我现在删除了 firebase,但我正在使用 recentStaticJobQuery.addListenerForSingleValueEvent (staticJobDownloadListener);所以它应该只被调用一次
标签: android firebase firebase-realtime-database