Firebase onDataChange在特定情况下未调用

时间:2016-02-07 12:09:53

标签: android firebase

我在Android应用中实施了Firebase。

我有两种执行某些同步操作的方法。 方法A:查询事物列表。 方法B:执行写入和读取。

方法A:

final Firebase ref = sFirebaseRef.child("users");
ref.addListenerForSingleValueEvent(new ValueEventListener()
{
    @Override
    public void onDataChange(DataSnapshot snapshot)
    {
        ...
    }

    @Override
    public void onCancelled(FirebaseError firebaseError)
    {
        ...
    }

当我调用方法A时,一切正常,但如果我调用方法B然后调用方法A,而不关闭应用程序,则不会调用方法A的onDataChange。 (也没有调用onCancelled方法)

如果我多打电话,方法B一切正常。

  • 我的连接正常(我在启动方法之前检查了它)
  • 我在调用方法A之前等待所有写入都在方法B中结束。(我也尝试使用purgeOutstandingWrites()而没有效果)

为什么不调用onDataChange? 有些操作可以阻止它吗?

1 个答案:

答案 0 :(得分:1)

已解决:我在方法B中调用了Firebase.getApp()。goOffline(),但未调用方法A中的goOnline()。