2017-08-23 17 views
0

我在我的android項目中使用以下類將數據上傳到其firebase後端。在firebase中插入android POJO導致json值列表

public class IATFPojo { 

public Double ecc, ecc2; 
public boolean prenhes, ressinc; 
public Long diasp, cl; 
public String localiza, datacob; 

public IATFPojo() {} 

public IATFPojo(double ecc, boolean prenhes, boolean ressinc, long diasp, String localiza, String datacob, double ecc2, long cl){ 

    this.ecc = ecc; 
    this.ecc2 = ecc2; 

    this.prenhes = prenhes; 
    this.ressinc = ressinc; 

    this.diasp = diasp; 
    this.cl = cl; 

    this.localiza = localiza; 
    this.datacob = datacob; 
} 

public Double getEcc() { 
    return ecc; 
} 

public Double getEcc2() { 
    return ecc2; 
} 

public boolean isPrenhes() { 
    return prenhes; 
} 

public boolean isRessinc() { 
    return ressinc; 
} 

public Long getDiasp() { 
    return diasp; 
} 

public Long getCl() { 
    return cl; 
} 

public String getLocaliza() { 
    return localiza; 
} 

public String getDatacob() { 
    return datacob; 
} 
} 

而且我將它在火力點是這樣的:

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference(); 

IATFPojo pojo = new IATFPojo(
        //ecc, prenhes, ressinc, diasp, localiza, datacob, ecc2, cl 
        (map.get("IATF6")).length() > 0 ? Double.parseDouble(map.get("IATF6")) : 0, 
        Integer.parseInt(map.get("IATF20")) > 1, 
        Integer.parseInt(map.get("IATF5")) > 1, 
        Long.parseLong(map.get("IATF30")), 
        map.get("IATF23"), 
        map.get("IATF1"), 
        (map.get("IATF22")).length() > 0 ? Double.parseDouble(map.get("IATF22")) : 0, 
        Long.parseLong(map.get("IATF21")) 
      ); 

myRef.child(uid +"/MULTIPARA").child(map.get("IATF1")+"_"+map.get("SUI")).setValue(pojo); 

,它創建一個用戶ID(UID),並與參考(經產女)另一個節點,那麼孩子的節點,其包含使用格式date_animal id的數據。 的問題是,該數據被存儲這樣的火力點:

real time database

而且我的理解中的數據應該有IATFPojo鍵這樣的:

2016-11-11_  A 335 

ecc: 2.75 

ecc2: 3 

prenhes: true 

ressinc : false 

diasp: 52 

cl: -1 

localiza: "16 IATF BV 5" 

datacob: "2016-11-11" 

我缺少的東西在類的配置中,還是在Firebase中?

+0

您應該從'map.get(「SUI」)'中刪除空格,順便說一下 –

+0

謝謝,但還沒有。我開始使用NoSQL數據庫,並且空格是動物id佈局的一部分。 –

+0

我不確定我看到有什麼區別'2016-11-11_ A 335'和'2016-11-11_ A335'會一直持續查詢,但好吧...無論如何,您可以使用Firebase批註標記字段,但它應該與你有的代碼一起工作。你使用proguard來混淆你的對象嗎? –

回答

0

Cricket_007的評論讓我回答。我在我的Android項目,包括所有的POJO類創建一個新的包上傳到火力點,然後包含下面一行到我的proguard的規則:

-keepnames class newPackage.** { *; } 

所以,現在我所有的Android的POJO被上傳與以火力正確的字段鍵。

謝謝cricket_007。