我无法在Firebase实时数据库中添加任何数据。数据库连接正常,但我无法添加任何数据。当我点击按钮,添加到我的数据库中的数据。
MainActivity.java - codes
private FirebaseDatabase database;
private DatabaseReference dbRef;
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String plan,note,date,time,remb,eventId;
plan = etplan.getText().toString();
note = etnote.getText().toString();
date = etdate.getText().toString();
time = ettime.getText().toString();
if (remember.isChecked()==true){
remb= "true";
}
else{
remb = "false";
}
database = FirebaseDatabase.getInstance();
dbRef = database.getReference("events");
eventId = dbRef.push().getKey();
event = new Events(plan,note,date,time,remb);
dbRef.child(eventId).setValue(event);
Toast.makeText(MainActivity.this,"Events Added SUCCESSFULLY!", Toast.LENGTH_SHORT).show();
}
});
Events.java - codes
public class Events {
String plan;
String note;
String date;
String time;
String remb;
public Events(){
}
public Events(String plan, String note, String date, String time, String remb){
this.plan=plan;
this.note=note;
this.date=date;
this.time=time;
this.remb=remb;
}
}
我在运行中得到以下错误:4.美元com.cdirect.agenda.MainActivity onclick (MainActivity.java: 118)
这个代码:
dbRef.child(eventId).setValue(event);
和前面的eventID (is String)
eventId = dbRef.push().getKey().toString();
您可以这样为setValue(event)
方法添加一个侦听器:
dbRef.child(eventId).setValue(event)
.addOnCompleteListener { task ->
if(task.isSuccessful) {
Toast.makeText(this, "Successful", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, task.getException().getMessage(),
Toast.LENGTH_SHORT).show();
}
}
现在task.getException().getMessage()
将让您知道保存事件数据的实际问题。
另外,不要忘记检查数据库规则是否读写设置为true
。