2016-12-25 57 views
0

有人可以帮我解决一个火炉底座问题我有,我想在另一个孩子内添加一个孩子,我知道这很简单,但因为我是firebase的新手,所以我会很感激有关这方面的帮助,请让我知道,如果这个问题需要改进格式化,以便我可以在堆栈溢出方面做得更好。Firebase孩子在另一个孩子里面

添加项目,从这个功能

public void addItem(Item model) { 
    Item item = new Item(); 
    item.setItem(model.getItem()); 
    item.setPonum(model.getPonum()); 
    item.setQty(model.getQty()); 
    item.setSupplier(model.getSupplier()); 
    item.setContact(model.getContact()); 
    item.setTransporter(model.getTransporter()); 
    item.setLrnum(model.getLrnum()); 
    item.setRemarks(model.getRemarks()); 

    String key = mDatabase.child("Items").push().getKey(); 
    Map<String, Object> postValues = item.toMap(); 

    Map<String, Object> childUpdates = new HashMap<>(); 
    childUpdates.put(key, postValues); 
    mDatabase.updateChildren(childUpdates); 
} 

我需要的例外只为说明部分,我会上传的正是我心目中,图片下面的图片是我目前有,我希望数据库一样第二图像What I currently have

What I Need

+0

什么异常,你越来越 – Rahul

+0

我很抱歉,我没有得到你,我没有收到任何错误,我只是想在我的原始数据库中添加备注的孩子,并用新的评论添加了每个人的更新。我只是不确定,如何如此。 P.S没有认证,任何人都可以更新数据库。 –

+0

'Item'中的'remarks'类型是什么? –

回答

0

我觉得你Item对象应该是这样的:

public class Item { 

    private String contact; 
    private String item; 
    private String lrnum; 
    private String ponum; 
    private String qty; 
    private HashMap<String, String> remarks; 
    private String supplier; 
    private String transporter; 

    // ... you configure setting method by setter or constructor, your choice 

    public String getContact() { 
     return contact; 
    } 

    public String getItem() { 
     return item; 
    } 

    public String getLrnum() { 
     return lrnum; 
    } 

    public String getPonum() { 
     return ponum; 
    } 

    public String getQty() { 
     return qty; 
    } 

    public HashMap<String, String> getRemarks() { 
     return remarks; 
    } 

    public String getSupplier() { 
     return supplier; 
    } 

    public String getTransporter() { 
     return transporter; 
    } 

    // and maybe add this to easily add one remarks 
    public void addRemark(String remarkKey, String remark) { 
     if (remarks == null) 
      remarks = new HashMap<>(); 

     remarks.put(remarkKey, remark); 
    } 
} 

然后你只需要这个代码行插入到您的火力地堡数据库:

public void addItem(Item model) { 
    mDatabase.child("Items").push().setValue(model); 
} 
+0

这应该把你的新'Item'放入你的数据库的'Items'节点中,如果你想在'uniabex-a22fb'节点中,只需要替换'child (“Items”)'带有'child(“uniabex-a22fb”)''。但你明白了 – koceeng

+0

谢谢,如果我需要进一步的帮助,我会更新。 –

1

找,你要推新数据的节点的参考。

Firebase newRef = ref.child("Key_of_root_node").child("remarks_parent_node").child("remarks").push(); 
newRef.setValue("Hi I am Comment"); 

推送会为您生成密钥,因此不需要处理生成密钥,如Comment1,Comment2。

+0

我试过这样做,但徒劳无功,请帮我解决它,我试图让这个应用程序使用教程,我也是新来的android,我只做小应用程序,这个应用程序有点棘手,希望你明白,请帮我出来https://github.com/fayazara/Uniabex-Materials –

+0

只要从你想要添加评论的地方拨打上面的代码即可。它很难让我跟踪你的代码,从你的执行位置 – Rahul

相关问题