Expanding the Cloud Firestore beta to more users
Dan McGrath
Product Manager, Google Cloud
At Next ‘18 in San Francisco, we shared exciting updates about the beta of Cloud Firestore, our serverless, NoSQL document database. We’ve expanded availability by adding management and administration tools for Cloud Firestore to the Google Cloud Platform (GCP) console and announced more locations and new features.
For all cloud-native apps, Cloud Firestore delivers an unparalleled developer experience—flexible data structures coupled with powerful querying for simplified app code; scaling based on your app’s traffic for easier operations; fine-grained security for direct database access from apps; and sync capabilities to keep data across devices current, online and offline.
Get more info and ask your Cloud Firestore questions in real time in our August 28 webinar.
Cloud Firestore now in Google Cloud Console
Cloud Firestore now runs in two modes. Native mode is what has been available for a few months through Firebase, Google’s mobile app development platform. Native mode includes the online and offline sync capabilities that simplify app development for web, mobile, and IoT apps where connectivity isn’t guaranteed. It is now available in the Google Cloud console. Current Cloud Firestore beta users will now see their projects in both the Firebase and GCP consoles (just like Cloud Functions and Cloud Storage).Scale limits for Cloud Firestore native mode in beta have now increased to 10,000 writes per second and 1 million concurrent users.
Using Cloud Firestore in Datastore mode
Cloud Firestore is the next generation of Cloud Datastore. Cloud Firestore now supports all Cloud Datastore APIs and client libraries when created in Datastore mode. When Cloud Firestore reaches general availability, all Cloud Datastore customer projects will be automatically upgraded to Cloud Firestore in Datastore mode. This upgrade will require no code changes and will be completed with no scheduled downtime.
Datastore mode will bring massive improvements to Cloud Datastore users. Cloud Firestore multi-region instances come with a five-nines (99.999%) availability SLA and regional instances come with a four-nines (99.99%) availability SLA at GA.
Using Datastore mode also addresses some of your biggest requests. We're removing a few limitations:
No more eventual consistency. Cloud Firestore is a strongly consistent database.
No more entity group limits on writes per second. Transactions can be as complex as you want to design them.
No more cross-entity group transaction limits. Transactions can span documents and be as complex as your app requires.
New locations for Cloud Firestore
We're pleased to announce that we're starting the process of adding new locations to host your Cloud Firestore data over the next several months, starting with the regional locations Frankfurt, Germany and South Carolina, U.S.
Along with expanding access to Cloud Firestore and adding new locations, we’ve added some other new useful features too. Here’s what you need to know:
Import/export your data
We've added the ability for you to import and export your Cloud Firestore data. This is useful if you ever want to make backups of your data. You get the freedom to migrate your data to another database if you ever wanted to, and it makes it easy for you to copy data between projects. That last feature can come in really handy if you want to migrate data from your production project into your test, dev, or staging environments. Exports from Cloud Firestore will be stored in your Google Cloud Storage bucket, and from there you can even import them into BigQuery for ad-hoc analytics.
Single-field index controls
Another new feature is the ability to disable the automatic indexing of a field in your documents. Why would you ever want to do this? Primarily, the issue is that Cloud Firestore will index the value of any field in a document, but if those fields happen to contain maps or arrays, it will recursively index every single value within those objects, too.
In many cases—like storing a mailing address as a map—this is exactly what you want, so you can search for documents by city or zip code. But if you're storing a bunch of, say, raw drawing data into a massive array, you definitely don't need those fields indexed. Single-field index controls also help with that whole "You can't do more than 500 writes per second in a collection where documents have constantly increasing or decreasing values" limit, which is something you could run into if you were, for example, trying to store timestamps in a very large collection. By disabling indexing on that timestamp field, you won't have to worry about this limit, although it does mean you will no longer be able to query that collection by that timestamp.
Better arrays in Cloud Firestore
Arrays haven't always been the best data structure for multi-user environments like Cloud Firestore. In the past, Cloud Firestore addressed these issues by limiting what you can do with arrays. That means that until now, you could really only "update" arrays by replacing the entire array (no appending or deleting!), and you couldn't perform meaningful queries on arrays, either. We've added the ability to query for elements within arrays using the new "array-contains" feature. This means you can keep your elements as an array, and easily query for them. Even better, you can query for items in arrays that aren't strings. You also have the ability to add or remove elements from an array.
Faster security rules deployment
We're also happy to report that we'll be speeding up the time in which security rules are deployed and made active in your project. Thanks to some serious improvements our engineers have made under the hood, the time it takes for security rules to become active in your project will no longer be measured in minutes. This should make testing security rules in your app a much better experience than before. Look for these security changes to roll out sometime this month.
We’re excited to see the great adoption of Cloud Firestore so far and we’re looking forward to seeing more of the amazing things you build with it. Get more information here on Cloud Firestore and these improvements. As always, if you have questions or suggestions on how to improve the service, you can join the Cloud Firestore Google group, or use the google-cloud-firestore tag on Stack Overflow.