在下面的代码中,您可以看到快照子级中有var变量。这个var是在我的onCreate方法上设置的,因此在经典情况下,一切正常。现在,我的代码中还有另一个部分,其中EventBus更改了该变量。我已经测试过var确实发生了变化。问题在于,由于数据库上的任何内容都没有更改,因此该字段上没有更新,因此我的输入路径错误。当此var更改时,有什么方法可以重新触发事件?据我所知,不存在变量侦听器。这需要触发1)首次设置var时,如果数据更改和var保持不变,则继续触发。 2)当var更改时,如果日期再次更改,则继续。
mUserRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.child("var").exists()) {
if (!(dataSnapshot.child("var").getValue(String.class).isEmpty())) {
varI = Integer.valueOf(dataSnapshot.child("var").getValue(String.class));
}
}
else {
varI = 0;
}
}
更改了var后,我尝试在Firebase中的新字段中随机编写一些内容,但没有用。
我的另一种想法是,由于我的整个片段都基于特定的var,也许我可以用新的var作为捆绑包来以某种方式刷新片段(重新创建?)。