我需要快速刷新数据时,从firebase数据库的数据被添加

xcitsw88  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(481)

我只想在输入新数据时刷新数据,但我的代码无法正常工作它在重新打开同一活动后显示数据。
这是我的密码:

Total_bgt_dataref.addListenerForSingleValueEvent(new ValueEventListener(){
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot){
        for(DataSnapshot ds:snapshot.getChildren()){
            Map<String, Object> objectMap=(HashMap<String, Object>)snapshot.getValue();
            String value=(String)objectMap.get("Total_Budget");
            tv_budget.setText(value);
        }
    }
    @Override
    public void onCancelled(@NonNull DatabaseError error){
        Toast.makeText(MainActivity.this,"DatabaseError Total Budget",Toast.LENGTH_SHORT).show();
    }
});
fhg3lkii

fhg3lkii1#

而不是 addListenerForSingleValueEvent 用户 addValueEventListener ,自 addListenerForSingleValueEvent 将被取消,但 addValueEventListener 将始终侦听值更改事件。

Total_bgt_dataref.addValueEventListener(new ValueEventListener(){
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot){
        for(DataSnapshot ds:snapshot.getChildren()){
            Map<String, Object> objectMap=(HashMap<String, Object>)snapshot.getValue();
            String value=(String)objectMap.get("Total_Budget");
            tv_budget.setText(value);
        }
    }
    @Override
    public void onCancelled(@NonNull DatabaseError error){
        Toast.makeText(MainActivity.this,"DatabaseError Total Budget",Toast.LENGTH_SHORT).show();
    }
});

查看此项了解更多信息。
注意:您必须在完成侦听器之后删除它,因此您必须保留对侦听器的引用,并在最后删除它。

相关问题