This is my database structure:

All the children of the Request node are timestamps. For a particular timestamp, within the product node, i want to retrieve all the values of the object productName. And then arrange them so that it is composed as the body of an email. The part where i am stuck at is in fetching the data of productName.
So far i've been able to fetch the data of the total in the second node. the code i'm using is this:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Requests");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
collectProducts((Map<String, Object>) dataSnapshot.getValue());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
private void collectProducts(Map<String, Object> value) {
ArrayList<String> products = new ArrayList<>();
for (Map.Entry<String, Object> entry : value.entrySet()){
Map singleUser = (Map) entry.getValue();
products.add((String) singleUser.get("total"));
}
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(Intent.EXTRA_EMAIL, "[email protected]");
StringBuilder sb = new StringBuilder();
for (String s : products) {
sb.append(s);
sb.append("\n");
}
emailIntent.putExtra(Intent.EXTRA_TEXT, sb.toString());
try {
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
Log.i("Email sent!", "");
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(Cart.this,
"There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
}
But no luck with getting productName.
I am new to Android and Firebase. Any help is appreciated.