首页 > 解决方案 > 每次启动 Activity 时都会调用 OnChildAdded EventListener。即使没有添加新的孩子

问题描述

我正在firebase android中开发一个聊天应用程序。每当我关闭应用程序并再次打开时。onchildadd 监听器被调用。甚至没有添加新的孩子。这是我下面的代码。仅当再次添加新子项时才应调用此代码。不是前一个。有人可以解决这个问题吗?

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);
    }
});

标签: androidfirebasefirebase-realtime-database

解决方案


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

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


推荐阅读