Mithu
Mithu

Reputation: 655

How to Get specific Child Value From Firebase For Specific Key

I have below Firebase database Structure.From this I need to extract d_avtr, d_nme,v_No,v_nme,v_tpe value Separately against key is equal to specific mobile no to save in variable separately

enter image description here

I have tried this

 String Mobileno=localSharedPreferences.getSharedPreferences(Constants.PhoneNumber);

            mDatabase= FirebaseDatabase.getInstance().getReference().child("Driver");

            if(mDatabase.getKey().startsWith(Mobileno)) {

                String driver_name = mDatabase.child("d_nme").toString();
                String driver_avator = mDatabase.child("d_avtr").toString();
                String vehicle_no = mDatabase.child("v_No").toString();
                String vehicle_name = mDatabase.child("v_nme").toString();
                String vehicle_type = mDatabase.child("v_tpe").toString();

                String firstname = driver_name;
                String lastname = vehicle_name;
                String avatorurl = driver_avator;
                String ratings = vehicle_no;

           }

But its not working.How can I achieve this

Upvotes: 0

Views: 933

Answers (1)

Peter Haddad
Peter Haddad

Reputation: 80952

To retrieve the values, you need to do the following:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Driver");

reference.orderByKey().equalTo("1815000000").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot datas: dataSnapshot.getChildren()){
            String driver_name = datas.child("d_nme").getValue(String.class);
            String driver_avator = datas.child("d_avtr").getValue(String.class);
            String vehicle_no = datas.child("v_No").getValue(String.class);
            String vehicle_name = datas.child("v_nme").getValue(String.class);
            String vehicle_type = datas.child("v_tpe").getValue(String.class);
        }
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
});

First add reference to node Driver then use the query orderByKey() to get the values under that key, attach a listener, and then iterate inside the key and retrieve the values.

Upvotes: 2

Related Questions