我在玩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.<init>(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控制台中清除了数据库,但这并没有解决问题。
你们中有人能帮我吗?
----编辑---
我做了一些新的测试,实际上只有当我传入的类包含以下方法时,应用程序才会崩溃:
public Calendar getStartTimeCalendar() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(startTime);
    return calendar;
}

最佳答案

我找到了答案(在你的帮助下)。
我要保存在firebasedatabase中的类包含以下变量:

public long startTime;
public long endTime;

当我使用此方法时,应用程序崩溃(可能是因为firebase认为它们是getter):
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

09-25 17:10
查看更多