Firebase实时数据库未从Android写作



我在firebase数据库中有以下问题。

方案:

我有一个Android应用程序和Firebase项目。它们链接在控制台中,我希望将数据从应用程序到firebase编写。制作了firebase的初始设置,我在应用程序中有一个点击侦听器,一旦按下它,执行以下代码:

private boolean value = true;
......
onClick(...) {
    value = !value;
    FirebaseApp.initializeApp(this);
    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    final DatabaseReference ref = database.getReference("info");
    ref.child("user").child("name").child("settings").setValue(value);
}

从我的角度来看,预期的结果将是一个价值变化,对于"/user/name/naterings/settings/settings/offers",反之亦然。

问题:

这是一个问题。在第一个应用程序开始时,数据将成功发送到firebase,并更改了值(从真实到false或Vise反之亦然)。然后,无论我按下了多少次,什么也不会发生。我试图杀死该应用程序,重新启动,依此类推,但什么都没有。为了在"实时"数据库中写入某些内容,我必须卸载该应用程序并将其再次部署到电话中。

我尝试从单击"侦听器代码"中记录某些内容,并且所有内容都是正确执行的,并且值完全符合预期。试图添加on Success,onfailure和oncomplete回调....甚至没有解雇。

我正在使用最新版本的库(11.2),我在清单中获得了Internet许可,电话已连接并具有互联网。

要监视数据更改,我正在使用firebase Console。

说实话.....我真的很生气:(

更新(答案):

当然问题取决于我...在我的一个根片段中,我有以下旧代码,这引起了麻烦:

FirebaseDatabase.getInstance().goOffline();

这正在发生,因为触发onClick()方法时,您将布尔值value字段的值设置为false。这意味着您的Firbease数据库不会发生任何变化,因为value始终相同。

要解决这个问题,您需要使用if statement更改代码的逻辑。

onClick(...) {
    if(value) {
        //some code
    } else {
        //other code
    }
}

希望它有帮助。

最新更新