2017-08-23 14 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。