Using Firebase Library to send data to the server in the form Message(String, String)
added to the HashMap<String, Message>
Example:
Firebase fb = new Firebase(URL);
Firebase msgRef = fb.child("finished");
HashMap<String, Message> msgList = new HashMap<>();
Message msg = new Message(m, n);
msgList.put(HASHKEY, msg);
msgRef.push().setValue(msgList);
While receiving data with Firebase method addValueEventListener()
getting String in this Form
{ key = finished, value = {
-Js9Rn0uttjYIGdcv8I1={Moosa={message=email, name=Kamran}},
-Js9Vsmv6BnVzOzpl2L8={Moosa={message=msgs, name=Imran}},
-Js9WtQ8yeDwVxQMFCZb={Moosa={message=samsung, name=Samad}},
-Js9RarxoJPKn4RO2HaM={Moosa={message=Message, name=Moosa}},
-Js9b6f75lwwbsqQNJz0={Moosa={message=Qmobile, name=Bilal}},
-Js9aDxt8TlgTGUccuxu={Moosa={message=last, name=Moosa}}} }
How can I convert it into Message Object.....????
You could make it using a
ChildEventListener
instead of aValueEventListener
.For example. I have a class called match with 3 string properties
{id, name, photoUrl}
then I add all the values in aList
. Instead of using a for loop it works for me with this code.There are two more way to get your data out of the Firebase
DataSnapshot
that don't require using aMap<String, Object>
.First appoach is to use the methods of
DataSnapshot
to traverse the children:In the above snippet we use
getChildren()
to get anIterable
of your messages. Then we usechild("name")
to get each specific child property.The second approach is to use the built-in JSON-to-POJO serializer/deserializer. When you're sending the message list, the
Message
objects inside it are serialized to JSON and stored in Firebase.To get them out of it again, you have to do the inverse:
In this second snippet, we're still using
getChildren()
to get at the messages, but now we deserialize them from JSON straight back into aMessage
object.For a simple sample application using that last approach, have a look at Firebase's AndroidChat sample. It also shows how to efficiently deal with the list of messages (hint:
FirebaseListAdapter
).So if you wanna get the messages you can do the following:
You can refer to this answer if you don't want to query for each list in firebase and rather you are using a class and have HashMap inside the class
https://stackoverflow.com/a/46486441/5611166
Iterating the values of dataSnapshot and getting Children using nested for loop to iterate the child elements of children and getting the Required Value...