我在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
}
}
希望它有帮助。