2016-12-25 59 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

相關問題