What is a Realtime Database?
Google’s Realtime Database is a real-time, NoSQL database that stores JSON documents, similar to your standard SQL or MongoDB database. However, because of its architectural differences from traditional databases, it can behave in unexpected ways and has its own set of quirks you should be aware of when using it for your application. Despite these differences and caveats, I’ve been using it with great success for many projects. It just requires a bit more work than your traditional database.
How does it compare to a traditional database?
Traditional databases are useful, but they aren’t always ideal. First, they require you to maintain your own servers. Second, these databases are typically accessed using SQL (structured query language). If you’re unfamiliar with SQL, that makes working with a traditional database more difficult. It’s easy to make mistakes when writing queries because there are no tools to help guide you in how best to structure your data and what columns should be joined together. Third, traditional databases aren’t built for real-time applications—they can lag behind as your users interact with your app or website and create additional data records which need to be updated. With Google Cloud Firestore, Google takes care of all of these problems for you.
Are there any alternatives?
As far as we’re aware, there aren’t any good alternatives to Google Cloud Firestore. The closest comparable product is Firebase, a full suite of development tools that includes a database. We don’t know enough about it to say if it is better or worse than GFCF; we suspect that it might be better but are not sure how they compare.
What about MongoDB?
If you haven’t already, it might be worth your time to become acquainted with MongoDB. It’s been around for years and is largely considered a standard for managing data-driven applications that require speed and high availability. Data stored in a NoSQL database, such as MongoDB, does not adhere to ACID (atomicity, consistency, isolation, durability) rules like those required by relational databases like MySQL. There are a lot of things you can do with MongoDB (and other NoSQL database), but knowing how it works with AngularFire2 should make your transition from MySQL easier.
How will this new database change my product’s architecture?
Google has introduced a brand new database service to its cloud computing platform: Google Cloud Firestore. This is a NoSQL database, which allows for fast and scalable app development, but it does mean that you need to rethink how you structure your data. Traditional relational databases (e.g., SQL Server) have schemas in place to keep data organized and structured, but NoSQL databases allow you to create structures as needed. You no longer have one user table that holds information on all of your users; instead, you might have multiple tables: one per each user’s profile and another that holds their comments on projects. Keep an eye out for any errors in data access—your product may become unstable if some columns are used in some places but not others.
Will it be hard to switch from Firebase Realtime Database?
For most companies that have already migrated to Realtime Database, it shouldn’t be hard to switch to Google Cloud Firestore. The biggest difference is that, instead of syncing data across clients in real time (as Realtime Database does), with Firestore, all writes go through a central database and can then be read back from any device. This isn’t as big of a deal for small companies or those who don’t mind occasional delays when reading data from another user, but might require some extra consideration for larger companies who need guaranteed reads and writes at all times. But, overall, if you were using Realtime Database before your transition over to Google Cloud Platform (GCP), your app shouldn’t see too many changes.