2016-06-14 81 views
4

每次我試圖從我的數據庫中檢索數據,我得到DatabaseException:發現兩名干將或領域有衝突的情況下,靈敏度

com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property: n 

任何我的字段是一個字母。谷歌搜索這個問題給出了0個結果,我可以在我的代碼中找到任何不協調的地方。我不知道這是否是Firebase中的錯誤,或者是否需要爲名稱長度爲1個字符的任何字段做一些特殊處理。

以下是錯誤報告的其餘部分,如果它有差別(我的代碼行,它引用是一個簡單的

params = dataSnapshot.getValue(Parameters.class); 

其作品在其他地方:

E/AndroidRuntime: FATAL EXCEPTION: main 
Process: osu.gd_prototype, PID: 11345 
com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property: n 
at com.google.android.gms.internal.zzaix$zza.zziw(Unknown Source) 
at com.google.android.gms.internal.zzaix$zza.<init>(Unknown Source) 
at com.google.android.gms.internal.zzaix.zzj(Unknown Source) 
at com.google.android.gms.internal.zzaix.zzd(Unknown Source) 
at com.google.android.gms.internal.zzaix.zzb(Unknown Source) 
at com.google.android.gms.internal.zzaix.zza(Unknown Source) 
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source) 
at osu.gd_prototype.DataSend$1.onDataChange(DataSend.java:107) 
at com.google.android.gms.internal.zzafp.zza(Unknown Source) 
at com.google.android.gms.internal.zzagp.zzSu(Unknown Source) 
at com.google.android.gms.internal.zzags$1.run(Unknown Source) 
at android.os.Handler.handleCallback(Handler.java:733) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5001) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
at dalvik.system.NativeStart.main(Native Method) 

這裏參數的代碼與相關的違規的獲取者和領域的引用者拋出錯誤:

public class Parameters { 

    public int K; 
    public double L; 
    public int D; 
    public int N; 

    public Parameters() { 

} 

    public double getL(){ 
     return L; 
    } 
    public void setL(double lVal){ 
     L = lVal; 
    } 

    public int getK(){ 
     return K; 
    } 
    public void setK(int kVal){ 
     K = kVal; 
    } 

    public int getD(){ 
     return D; 
    } 
    public void setD(int dVal){ 
     D = dVal; 
    } 

    public int getN(){ 
     return N; 
    } 
    public void setN(int nVal){ 
     N = nVal; 
    } 
} 
+0

顯示爲'Parameters'的最少的代碼能重現問題,請。 –

+0

我認爲這應該會給你所有的信息 – user6462035

+1

啊......你能讓這個領域不公開嗎?例如。 'protected int N;'或者讓它公開,但是移除'getN()'和'setN()'方法。 –

回答

14

的火力地堡數據庫考慮這些項目序列化/反序列化JSON時:

  • 公共領域
  • 類似JavaBean的屬性getter/setter方法

既然你有兩個公共字段NgetN()/setN()方法它認爲兩者有衝突。雖然在這種情況下設置N並呼籲setN()導致相同的結果,但情況可能並非總是如此。發生錯誤的可能性太大,這就是爲什麼這種情況根本不被允許。

在這種情況下,錯誤消息是一個紅鯡魚的位。我們應該改善這一點。

+0

謝謝你的答案卡在它的時間,直到我發現它:) –

+0

感謝信息先生@法蘭克範Puffelen。 我的錯誤已解決 – scienticious

2

公共轉換以下領域向私人

public int K; 
public double L; 
public int D; 
public int N; 

private int K; 
private double L; 
private int D; 
private int N; 
相關問題