Firebase儿童在另一个孩子里面

时间:2016-12-25 19:43:14

标签: android firebase firebase-realtime-database

有人可以帮我解决我遇到的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

2 个答案:

答案 0 :(得分:1)

获取您必须推送新数据的节点的参考。

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

Push将为您生成密钥,因此无需处理生成Comment1,Comment2等密钥。

答案 1 :(得分: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);
    }
}

然后,您只需要使用以下代码行将其插入Firebase数据库:

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