从DateTime节点检索数据Firebase

时间:2017-11-30 12:27:05

标签: java android firebase firebase-realtime-database

我想从Firebase检索数据但我的问题是其中一个节点是每天的日期,我不知道如何进入它。

那是我的JSON

{
"jsonData": {
    "11-30-2017": {
      "Clau": {
        "-L-BmanPPTqqXxOivGZs": [
          {
            "cantitate": "18",
            "pret": "140",
            "produs": "Camasa",
            "produsId": "-L-BjnaA-Uizg9mI7J3l",
            "qty": 2,
            "subTotal": 280
          }
        ]
      }
    }
  }
}

我想在jsonData cantitate,pret,produsID等)中获取对象。我不知道怎么进去,这就是我尝试过的。

mDatabaseReference = FirebaseDatabase.getInstance().getReference("jsonData")

我不知道下一步该做什么。

3 个答案:

答案 0 :(得分:1)

mDatabaseReference = FirebaseDatabase.getInstance().getReference("jsonData").child("11-30-2017").child("Clau").child("-L-BmanPPTqqXxOivGZs");  
mDatabaseReference .addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                Log.wtf(TAG, "onDataChange:Daylog "+dataSnapshot.toString() );
                //your data


            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

                  //error code
            }

        });

答案 1 :(得分:0)

Firebase API仅允许您使用orderByChildequalTo方法过滤一级深度(或with a known path)的儿童。

您通过this doc阅读了解其工作原理。

答案 2 :(得分:0)

您需要创建dao类以便于管理数据。

$_POST['left']

当你将数据插入firebase然后你得到Unique键L-BmanPPTqqXxOivGZs

@IgnoreExtraProperties
public class Datas {
    public String cantitate;
    public String pret;
    public String produs;
    public String produsId;
    public String qty;

    public Datas() {}
    public Datas(String cantitate, String pret, String produs, String produsId, String qty, String subTotal) {
        this.cantitate = cantitate;
        this.pret = pret;
        this.produs = produs;
        this.produsId = produsId;
        this.qty = qty;
        this.subTotal = subTotal;
    }

    public String subTotal;

    public String getCantitate() {
        return cantitate;
    }

    public void setCantitate(String cantitate) {
        this.cantitate = cantitate;
    }

    public String getPret() {
        return pret;
    }

    public void setPret(String pret) {
        this.pret = pret;
    }

    public String getProdus() {
        return produs;
    }

    public void setProdus(String produs) {
        this.produs = produs;
    }

    public String getProdusId() {
        return produsId;
    }

    public void setProdusId(String produsId) {
        this.produsId = produsId;
    }

    public String getQty() {
        return qty;
    }

    public void setQty(String qty) {
        this.qty = qty;
    }

    public String getSubTotal() {
        return subTotal;
    }

    public void setSubTotal(String subTotal) {
        this.subTotal = subTotal;
    }

}

获取数据后,如下所示存储在适配器中,这是适配器类..

      mDatabaseReference.child("-L-BmanPPTqqXxOivGZs").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

            Datas datas = dataSnapshot.getValue(Datas.class);
           //now you have evry thing in yor pojo

        }

        @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.w(TAG, "Failed to read value.", error.toException());
        }
    });

关注代码 加入你的班级 我们获取数据的地方

class ListAdapters extends ArrayAdapter<String> {

            public ListAdapters(Context context, int textViewResourceId) {
                super(context, textViewResourceId);
                // TODO Auto-generated constructor stub
            }

            private List<String> items;

            public ListAdapters(Context context, int resource, List<String> items) {

                super(context, resource, items);

                this.items = items;

            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                View v = convertView;

                if (v == null) {

                    LayoutInflater vi;
                    vi = LayoutInflater.from(getContext());
                    v = vi.inflate(R.layout.list_item, null);

                }

                String p = items.get(position);

                if (p != null) {

                    TextView tt = (TextView) v.findViewById(R.id.textviewid);


                    if (tt != null) {
                        tt.setText(p);
                    }

                }

                return v;

            }
         }