Hello Eugene,
Being from an RDB background myself, it took me a few tries to develop effective data structures in Firebase. I also enjoy having my data structures mapped before I dive into code. If you have something specific in mind, I'd recommend posting your use case up for review. I'm sure some of the devs on the list have similar structures and could offer advice.
What I find works best with NoSQL, for me, is to mock up sample data in a JavaScript object (i.e. a fixture) and use that directly in my proofs. Since Firebase and most NoSQL offerings are essentially JSON trees, this is a great way to emulate data quickly and test out my nested architectures for pain points.
When I get to the point that I'm ready to try some real code and integrate Firebase, a quick call in the JavaScript console to `new Firebase(URL).set( jsData )` imports it into my test environment as quickly as that.
I do most of my initial mocking and problem solving on a white board or sheet of notebook paper. The notes typically look about like so:
/user/$uid/ {name, email, etc}
/scene/$scene_id/ {title, revs, public, uid, pid}
/copy/$scene_id/$version/ {text, timestamp}
/messages/$scene_id/ {uid, msg}
(with a few smudges, lots of striking out, and a rare drop of blood or tear stain)
I've also experimented, and had good success when I did, with writing my security rules first. Since I find that implementing an effective security policy is directly linked to a well-thought data structure, they fit naturally together. Once written and generously commented, the rules make a fairly nice architectural map of the data.
However, this is probably best attempted once you've got a good feel of the ins and outs of both security and data structures and I don't think it would have done me any good on my first couple apps.
Firebase will be publishing a blog circa next week talking about converting SQL strategies to Firebase and it will feature some sample data. Keep an eye out for that.
Hope something here helps.
Regards,
Kato