Understanding firebase JSON database
suggest changeBefore we get our hands dirty with code, I feel it is necessary to understand how data is stored in firebase. Unlike relational databases, firebase stores data in JSON format. Think of each row in a relational database as a JSON object (which is basically unordered key-value pair). So the column name becomes key and the value stored in that column for one particular row is the value. This way the entire row is represented as a JSON object and a list of these represent an entire database table. The immediate benefit that I see for this is schema modification becomes much more cheaper operation compared to old RDBMS. It is easier to add a couple of more attributes to a JSON than altering a table structure.
here is a sample JSON to show how data is stored in firebase:
{ "user_base" : { "342343" : { "email" : "[email protected]", "authToken" : "some string", "name" : "Kaushal", "phone" : "+919916xxxxxx", "serviceProviderId" : "firebase", "signInServiceType" : "google", }, "354895" : { "email" : "[email protected]", "authToken" : "some string", "name" : "devil", "phone" : "+919685xxxxxx", "serviceProviderId" : "firebase", "signInServiceType" : "github" }, "371298" : { "email" : "[email protected]", "authToken" : "I am batman", "name" : "Bruce Wayne", "phone" : "+14085xxxxxx", "serviceProviderId" : "firebase", "signInServiceType" : "shield" } }, "user_prefs": { "key1":{ "data": "for key one" }, "key2":{ "data": "for key two" }, "key3":{ "data": "for key three" } }, //other structures }
This clearly shows how data that we used to store in relational databases can be stored in JSON format. Next let’s see how to read this data in android devices.