Java 为什么Firebase实时数据库未更新?
我已经创建了一个列表。当我尝试更新这些值时,这些值在Edittext中被正确捕获。但是,当我在更正后单击“更新”按钮时,它不起作用并强制关闭应用程序 我的更新代码如下Java 为什么Firebase实时数据库未更新?,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我已经创建了一个列表。当我尝试更新这些值时,这些值在Edittext中被正确捕获。但是,当我在更正后单击“更新”按钮时,它不起作用并强制关闭应用程序 我的更新代码如下 public class UpdateActivity extends AppCompatActivity { private EditText PName, PLocation; private FirebaseDatabase mDatabase; private DatabaseReference mDbRef; priv
public class UpdateActivity extends AppCompatActivity {
private EditText PName, PLocation;
private FirebaseDatabase mDatabase;
private DatabaseReference mDbRef;
private Button upbtn;
private String prID;
private String pname,plocation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update);
prID = getIntent().getStringExtra("ProjID");
pname = getIntent().getStringExtra("pname");
plocation = getIntent().getStringExtra("plocation");
PName = findViewById(R.id.uProjName);
PName.setText(pname);
PLocation = findViewById(R.id.uProjLocation);
PLocation.setText(plocation);
PType = findViewById(R.id.uProjType);
upbtn = findViewById(R.id.ubutton);
mDbRef = mDatabase.getInstance().getReference().child("Projects");
upbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference updateProject = mDbRef.child(prID);
updateProject.child("pname").setValue(PName);
updateProject.child("plocation").setValue(PLocation);
Toast.makeText(UpdateActivity.this, "Project updated Successfully",Toast.LENGTH_LONG).show();
finish();
}
});
}
}
我是一个学习者。请帮助我我的代码哪里出错了 看看这个例子。该过程是异步的,因此您必须添加侦听器来确定数据库是否已更新
mDatabase.child("achildName").child("anotherChildName").setValue(YOUR_DATA)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
// Write was successful!
// ...
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Write failed
// ...
}
});
mDatabase.child(“achildName”).child(“anotherChildName”).setValue(您的_数据)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公开作废(作废避免){
//写得很成功!
// ...
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
//写入失败
// ...
}
});
除此之外,首先,确保在Manifest.xml中添加了Internet权限
然后在Firebase控制台中检查实时数据库并检查安全规则
要更新实时数据库您是否尝试在
setValue()
操作上附加侦听器,以查看是否是错误消息?如何执行和检查?我不是专业的程序员。。。只是一个学习者.updateProject.child(“plocation”).setValue(plocation).addOnCompleteListener(/*…*/);你有什么收获吗;很可能正在关闭应用程序,您是否检查了firebase实时规则?No finish()仅关闭当前活动并返回到上一个活动。已尝试。不起作用。我传递了成功和失败的祝酒词。但当我按下更新按钮时,这两条消息都没有出现。请更正所需的代码。项目设置正确吗?首先,清单中的Internet权限,您是否启用了实时数据库及其安全规则?是的,我在实时数据库中的添加活动工作正常。但更新只是有问题。