Imagine I'm creating an app where other people will write their blogs. (Actually I'm making something else, but it's not too different from a blogging app, technologically.) Note that I'm a simple hobbyist, slowly learning web technologies in my free time.
The database will contain only plain text. Some values (individual posts) can be hundreds of KB. The app will use some Google APIs.
I'm considering Firebase Realtime Database for the app and have been learning about it the last few days. Mario Giambanco has kindly provided a detailed description of how this can be done: hshno.de/SkI_uuvZZ
What I like about Firebase Realtime Database is the ease and flexibility that come with the JSON format. For someone like me, who has no experience of working with databases except writing simple SQL queries, this is perfect. I also like that it's realtime, which can be potentially useful, but is not absolutely necessary.
What I don't like is the lack of advanced querying and of the ability to do full-text search within values. I'm guessing I can pull the data on the server and then do the querying/processing there. But then, will this scale? For an idea about the scale, think of a very popular blogging platform with hundreds of thousands of users each with hundreds of posts (just stress-testing, not day-dreaming).
I also don't like is the need to denormalize (duplicate) some data. Because then I have to worry about updating the duplicate data everywhere. But it's not a deal-breaker.
Should I go with the Realtime Database? Or is it totally the wrong solution? What other choices do I have?
I am not a database developer but, from the very little knowledge I have and the kind of projects I have worked on (an android application, something similar to your idea, where store owners create their own store and users rate, comment (using custom generated forms) and upload pictures on these stores, github link: github.com/shivani26shinde/Projects/tree/master/F…) where, I have used Firebase Storage (not Firebase Realtime DB) to upload pictures and MySQL for the complex querying (like storing user details, store details, form details), I would suggest you to study and research, a little more on Firebase Realtime DB because, if it is able to do the task just like any other database, it will be the best choice.
The only reason why, I didn't prefer to use Firebase Realtime DB is, less support for complex querying (and this application was created almost 7 months back so, lack of Firebase DB knowledge but, today it might be totally different and convenient).
Again, as I am not proficient with databases and have very little information, I couldn't suggest any concrete solution or answer to your question. But, I hope the link mentioned above, helps you (in some way) finding an answer to your question.