作者:mobiledu2502884697 | 来源:互联网 | 2023-02-13 16:32
如何解决《FirebaseAndroid-在.setValue()时崩溃,并显示“找到名称为setGregorianChange的冲突设置器”》经验,为你挑选了1个好方法。
我正在使用FirebaseDatabase,但无法解决非常烦人的崩溃。
每当我尝试执行时:
FirebaseDatabase.getInstance().getReference().child("...").push().setValue(...)
应用程序崩溃,我收到此消息:
com.google.firebase.database.DatabaseException: Found a conflicting setters with name: setGregorianChange (conflicts with setGregorianChange defined on java.util.GregorianCalendar)
at com.google.android.gms.internal.zzbqi$zza.(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzi(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaE(Unknown Source)
at com.google.android.gms.internal.zzbqi$zza.zzaF(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzax(Unknown Source)
at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source)
at com.google.firebase.database.DatabaseReference.zza(Unknown Source)
at com.google.firebase.database.DatabaseReference.setValue(Unknown Source)
我尝试在FirebaseDatabase中保存包含日历的对象后,开始发生此崩溃。
问题是,现在,即使我从该对象中删除了日历,应用程序仍会崩溃,并出现相同的错误。看起来有些东西已损坏,我无法使其再次正常运行。
我已经从手机上卸载了该应用程序,请在Firebase控制台中清除数据库,但这不能解决问题。
你们其中之一可以帮助我吗?
-----编辑-----
我做了一些新的测试,实际上只有当我传入的类.setValue(...)
包含此方法时,应用程序才会崩溃:
public Calendar getStartTimeCalendar() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(startTime);
return calendar;
}
Valentin..
5
我找到了答案(在您的Deepesh帮助下)。
我要保存在FirebaseDatabase中的类包含以下变量:
public long startTime;
public long endTime;
当我使用此方法时,应用程序崩溃(可能是因为Firebase认为它们是吸气剂):
public Calendar getStartTimeCalendar() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(startTime);
return calendar;
}
public Calendar getEndTimeCalendar() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(endTime);
return calendar;
}
解决方案是在这些方法之前添加前缀 @Exclude
1> Valentin..:
我找到了答案(在您的Deepesh帮助下)。
我要保存在FirebaseDatabase中的类包含以下变量:
public long startTime;
public long endTime;
当我使用此方法时,应用程序崩溃(可能是因为Firebase认为它们是吸气剂):
public Calendar getStartTimeCalendar() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(startTime);
return calendar;
}
public Calendar getEndTimeCalendar() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(endTime);
return calendar;
}
解决方案是在这些方法之前添加前缀 @Exclude