Firebase Android-在.setValue()时崩溃,并显示“找到名称为setGregorianChange的冲突设置器”

Val*_*tin 2 android firebase firebase-realtime-database

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

我尝试在FirebaseDatabase中保存包含日历的对象后,开始发生此崩溃。

问题是,现在,即使我从该对象中删除了日历,应用程序仍会崩溃,并出现相同的错误。看起来有些东西已损坏,我无法使其再次正常运行。

我已经从手机上卸载了该应用程序,请在Firebase控制台中清除数据库,但这不能解决问题。

你们其中之一可以帮助我吗?

-----编辑-----

我做了一些新的测试,实际上只有当我传入的类.setValue(...)包含此方法时,应用程序才会崩溃:

public Calendar getStartTimeCalendar() {
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(startTime);
    return calendar;
}
Run Code Online (Sandbox Code Playgroud)

Val*_*tin 5

我找到了答案(在您的Deepesh帮助下)。

我要保存在FirebaseDatabase中的类包含以下变量:

public long startTime;
public long endTime;
Run Code Online (Sandbox Code Playgroud)

当我使用此方法时,应用程序崩溃(可能是因为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;
}
Run Code Online (Sandbox Code Playgroud)

解决方案是在这些方法之前添加前缀 @Exclude