I\'ve read the Firebase docs on Stucturing Data. Data storage is cheap, but the user\'s time is not. We should optimize for get operations, and write in multiple places. >
To add to Franks great reply, I implemented the eventual consistency approach with a set of Firebase Cloud Functions. The functions get triggered whenever a primary value (eg. users name) gets changed, and then propagate the changes to the denormalized fields.
It is not as fast as a transaction, but for many cases it does not need to be.