快照路径更改时如何重新触发ValueEventListener onDataChange事件

时间:2019-07-01 12:22:35

标签: android firebase firebase-realtime-database

在下面的代码中,您可以看到快照子级中有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作为捆绑包来以某种方式刷新片段(重新创建?)。

0 个答案:

没有答案