Ad

Convert Value With Child Into Java Object In Firebase Android

I have read the question on how get value with it's child in Firebase.

enter image description here

Now I want to convert that value into a Java object. Can I do that? If can, how I can achieve that?

Ad

Answer

Now I want to convert that value into a Java object. Can I do that?

Of course you can! Actually I have answered that question too. So to solve this, first you need to create two POJO (model) classes:

class MailId {
    public String email, name;

    MailId() {}
}

And

class MailText {
    public String subject, title;

    MailText() {}
}

To get that data as objects of MailId and MailText classes, please use the following code:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference newRef = rootRef.child("new");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.child("mailID").getChildren()) {
            MailId mailId = ds.getValue(MailId.class);
            Log.d("TAG", mailId.email + " / " + mailId.name);
        }
        for(DataSnapshot ds : dataSnapshot.child("mailText").getChildren()) {
            MailText mailText = ds.getValue(MailText.class);
            Log.d("TAG", mailText.subject + " / " + mailText.title);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
newRef.addListenerForSingleValueEvent(valueEventListener);
Ad
source: stackoverflow.com
Ad