Avoid nesting data

In Firebase Realtime Database, when you fetch the data from the JSON tree, we will also get all the child nodes of that specific node, because when we add the data into the JSON tree, it becomes the node in the existing JSON structure with an associated key. Firebase Realtime Database allows nesting data up to 32 levels deep, so when we give the access to someone to read or write access at a specific node, then we are also giving access of all the child nodes of under that node. Therefore, always the best practice is to keep our data structure as flat as possible.

Let me show you why nested data is bad; refer to the following example:

{
// a poorly nested data architecture, because
// iterating over "products" to get a list of names requires
// potentially downloading hundreds of products of mobile
"products": {
"electronics": {
"name": "mobile",
"types": {
"samsung": { "name": "Samsung S7 Edge (Black Pearl, 128 GB)", "description": "foo" },
"apple": { ... },
// a very long list of mobile products
}
}
}
}

With this nested data structure, it's very difficult to iterate over the data. Even a simple operation like listing the names of products requires that the entire products tree, including all product list and types, be downloaded to the client.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset