android - 我如何按顺序执行android firebase多个childeventlistiner
问题描述
我在一项活动中有 4 个 ChildEventListener。当活动启动时,第 4 个 ChildEventListener 执行第 1 个,然后执行第 3 个、第 2 个、第 1 个,有时它会以相反的顺序 1、2、3、4。所以它不是按顺序加载的。下面提到了 ChildEventListener 侦听器示例。
AfirebaseDatabaRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
BfirebaseDatabaRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
解决方案
我认为您不太了解这些侦听器,正在为注册到它的节点调用回调,只有这个节点没有其他人,所以如果您有多个节点并且每个节点都注册了回调,那么当任何更改发生时节点只会触发相应的回调,因此顺序应该是节点中的更改而不是回调,我希望这能回答您的问题。
推荐阅读
- angular - 是否值得为函数参数定义`undefined and null`?
- webpack - 多个输出需要 Output.filename
- migration - 在 Liquibase 中删除带有 loadUpdateData 变更集的表
- javascript - Google Maps 设置方向的方向Renderer 对象未绘制路线
- python - 数据库已更新,但 api 未在 Flask 中显示任何内容
- javascript - 离子服务工作者为 GET 发送 OPTIONS
- java - 在一个应用程序中使用 rest 和 websockets
- delphi - 具有多个 if/copy 组合的构建后事件仅在第一个文件不存在时执行
- swift - 哪些版本的 Xcode 支持哪些版本的 Swift?
- c# - 实体框架代码首先选择多个级别进入视图模型