我无法将对象添加到 firebase 实时数据库。我尝试了以下代码。但是当这段代码执行时
db.child("Users").setValue(person);
我的应用程序崩溃了
public class Person{
String fname;
String lname;
Person()
{}
Person(String fname,String lname)
{
this.fname = fname;
this.lname = lname;
}
public String getFname() {
return fname;
}
public String getLname() {
return lname;
}
}
这是错误。
11-20 15:34:57.762 2752-2752/shazdroid.com.surveyapp E/AndroidRuntime:
致命异常:主要
进程:shazdroid.com.surveyapp,PID:2752
com.google.firebase.database.DatabaseException:发现冲突
名称的 getter:isChangingConfigurations
在 com.google.android.gms.internal.zzamy$zza。(来源不明)
在 com.google.android.gms.internal.zzamy.zzj(来源未知)
在 com.google.android.gms.internal.zzamy.zzca(来源未知)
在 com.google.android.gms.internal.zzamy.zzch(来源未知)
在 com.google.android.gms.internal.zzamy$zza.zzci(来源未知)
在 com.google.android.gms.internal.zzamy.zzca(来源未知)
在 com.google.android.gms.internal.zzamy.zzbz(来源未知)
在 com.google.firebase.database.DatabaseReference.zza(来源未知)
在 com.google.firebase.database.DatabaseReference.setValue(未知
来源)
在 shazdroid.com.surveyapp.AddMember.savePerson(AddMember.java:207)
在 shazdroid.com.surveyapp.AddMember.access$000(AddMember.java:37)
在 shazdroid.com.surveyapp.AddMember$6.onClick(AddMember.java:193)
在 android.view.View.performClick(View.java:5610)
在 android.view.View$PerformClick.run(View.java:22260)
在 android.os.Handler.handleCallback(Handler.java:751)
在 android.os.Handler.dispatchMessage(Handler.java:95)
在 android.os.Looper.loop(Looper.java:154)
在 android.app.ActivityThread.main(ActivityThread.java:6077)
在 java.lang.reflect.Method.invoke(本机方法)
在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
这是我保存对象的方法。
private void savePerson() {
suc.show();
Person person = new Person("shahbaz","ansari");
db.child("User").setValue(person)
.addOnCompleteListener(AddMember.this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful())
{
suc.dismissWithAnimation();
suc = new SweetAlertDialog(AddMember.this,SweetAlertDialog.SUCCESS_TYPE);
suc.setTitleText("Successful");
suc.setContentText("Saving data successful");
suc.setConfirmText("OK");
suc.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
@Override
public void onClick(SweetAlertDialog sweetAlertDialog) {
sweetAlertDialog.dismissWithAnimation();
}
}).show();
}else{
suc.dismissWithAnimation();
suc = new SweetAlertDialog(AddMember.this,SweetAlertDialog.ERROR_TYPE);
suc.setTitleText("Failed");
suc.setContentText("Failed to save data");
suc.setConfirmText("Try Again");
suc.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
@Override
public void onClick(SweetAlertDialog sweetAlertDialog) {
savePerson();
}
});
suc.setCancelText("cancle");
suc.setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() {
@Override
public void onClick(SweetAlertDialog sweetAlertDialog) {
sweetAlertDialog.dismissWithAnimation();
}
}).show();
}
}
});
堆栈跟踪指的是isChangingConfigurations
,这是一个方法的名称Activity
。这可能表明您已经声明了类Person
作为活动的内部类。当 Firebase 序列化时Person
它还尝试序列化封闭的 Activity 类并失败。
移动声明Person
到包级别或更改声明以使其成为静态内部类:public static class Person
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)