android - 每次启动 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);
}
});
解决方案
您所描述的是预期的行为。来自`onChildAdded 的 Firebase 文档:
检索项目列表或监听项目列表的添加。此回调为每个现有的孩子触发一次,然后在每次将新的孩子添加到指定路径时再次触发。
推荐阅读
- r - ggplot2 对象不是在修改时复制?
- python-3.x - 在噪声 (rand) fnc w fsolve 中找到根(ValueError:函数返回的数组在调用之间改变了大小)
- python - 如何正确填充缓冲区?
- python - 安装 PyTorch 后 conda list 返回运行时错误 Path not Found
- javascript - 在 JavaScript 中组合两个对象?
- node.js - 使用nodejs打开或关闭USB端口电源
- spring - 如何为 RestTemplate 调用 SOAP 服务端点
- javascript - 如何使用 $.map 和 Object.keys 函数从给定的 Object.keys 数组中获取第一个值?
- javascript - 在 VSCode 中调试 TypeScript 改为进入编译后的 JavaScript
- picketlink - idm picketlink list roles of a group is building a lot of queries, FetchMode 和 Fettype 没有影响