每次启动Activity时都会调用OnChildAdded EventListener,即使未添加新的子代也是如此

时间:2018-07-29 16:44:10

标签: android firebase firebase-realtime-database

我正在使用Firebase android开发聊天应用程序。 每当我关闭应用程序并再次打开时。调用onchildadded侦听器。甚至没有新的孩子被添加。这是下面的代码。仅当再次添加新子级时,才应调用此代码。不适合上一个。有人可以解决这个问题吗?

String uid = mAuth.getCurrentUser().getUid();
DatabaseReference ddr = 
FirebaseDatabase.getInstance().getReference().child("Orders").child(uid);
ddr.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        Intent i = new Intent().setClass(getApplication(), DialogActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
        Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
        getApplication().startActivity(i);
    }
});

1 个答案:

答案 0 :(得分:0)

您所描述的是预期的行为。来自Firebase documentation for `onChildAdded

  

检索项目列表或收听对项目列表的添加。 为每个现有子级触发一次该回调,然后每次将新子级添加到指定路径时再次触发。