Ordinarily you would be correct in thinking that. The problem is that that you cannot really “join” data from multiple nodes like you would join tables in SQL.
If you go with you approach you would need to create a new query each time you wish to get a post’s metadata — which will hurt the apps performance.
In Firebase, the logic is that writing data is cheaper then reading. i.e it’s more important for the user to get his data fast, writing is less important as it can happen in the background.
Hope this helps!