您的位置:首页 > 其它

firestore vs firebase database

2018-03-03 07:06 846 查看

Choose a Database: Cloud Firestore or Realtime Database

Firebase offers two cloud-based, client-accessible database solutions that support realtime data syncing:Realtime Database is Firebase's original database. It's an efficient, low-latency solution for mobile apps that require synced states across clients in realtime.
Cloud Firestore is Firebase's new flagship database for mobile app development. It improves on the successes of the Realtime Database with a new, more intuitive data model. Cloud Firestore also features richer, faster queries and scales better than the Realtime Database.

Which database is right for your project?

If you're comfortable with a product in beta, use Cloud Firestore for your new projects. Cloud Firestore offers additional functionality, performance, and scalability on an infrastructure designed to support more powerful features in future releases. Expect to see new query types, more robust security rules, and improvements to performance among the advanced features planned for Cloud Firestore.As you're choosing between database solutions, consider the following differences between Cloud Firestore and the Realtime Database.

Data model

Both Realtime Database and Cloud Firestore are NoSQL Databases.
Realtime DatabaseCloud Firestore
Stores data as one large JSON tree.Simple data is very easy to store.
Complex, hierarchical data is harder to organize at scale.
Learn more about the Realtime Database data model.
Stores data in documents organized in collections.Simple data is easy to store in documents, which are very similar to JSON.
Complex, hierarchical data is easier to organize at scale, using subcollections within documents.
Requires less denormalization and data flattening.
Learn more about the Cloud Firestore data model.

Realtime and offline support

Both have mobile-first, realtime SDKs and both support local data storage for offline-ready apps.
Realtime DatabaseCloud Firestore
Offline support for mobile clients on iOS and Android only.Offline support for iOS, Android, and web clients.

Querying

Retrieve, sort, and filter data from either database through queries.
Realtime DatabaseCloud Firestore
Deep queries with limited sorting and filtering functionality.You can only sort or filter on a property, not sort andfilter on a property, in a single query.
Queries are deep by default: They always return the entire subtree.
Indexed queries with compound sorting and filtering.You can chain filters and combine filtering and sorting on a property in a single query.
Write shallow queries for subcollections: You can query subcollections within a document instead of an entire collection, or even an entire document.
Queries are indexed by default: Query performance is proportional to the size of your result set, not your data set.

Writes and transactions

Realtime DatabaseCloud Firestore
Basic write and transaction operations.Write data as an individual operation.
Transactions in the native SDKs require a completion callback.
Atomic write and transaction operations.Batch operations and complete them atomically.
Transactions automatically repeat until they're completed.

Reliability and performance

Realtime DatabaseCloud Firestore
Realtime Database is a mature product.Stability you'd expect from a battle-tested, tried-and-true product.
Very low latency, so it's a great option for frequent state-syncing.
Databases are limited to zonal availability in a single region.
Read more about Realtime Database performance and reliability characteristics in the Service Level Agreement.
Cloud Firestore is currently in beta.Stability in a beta product is not always the same as that of a fully launched product.
Houses your data across multiple data centers in distinct regions, ensuring global scalability and strong reliability.
When Cloud Firestore graduates from beta, it will have stronger reliability than Realtime Database.

Scalability

Realtime DatabaseCloud Firestore
Scaling requires sharding.Scale to around 100,000 concurrent connections and 1,000 writes/second in a single database. Scaling beyond that requires sharding your data across multiple databases.Scaling will be automatic.Scales completely automatically (after beta), meaning you don't need to shard your data across multiple instances.

Security

Realtime DatabaseCloud Firestore
Cascading rules that require separate validation.Firebase Database Rules are the only security option.
Read and write rules cascade.
You need to validate data separately using the 
validate
 rule.
Simpler, more powerful security for mobile, web, and server SDKs.Mobile and web SDKs use Cloud Firestore Security Rules. Server SDKs use Identity and Access Management (IAM).
Rules don't cascade unless you use a wildcard.
Data validation happens automatically.
Rules can constrain queries: If a query's results might contain data the user doesn't have access to, the entire query fails.

Pricing

Both solutions are available on the Spark, Flame, and Blaze pricing plans.
Realtime DatabaseCloud Firestore
Charges only for bandwidth and storage, but at a higher rate.Read more about Realtime Database pricing plans.Charges primarily on operations performed in your database (read, write, delete) and, at a lower rate, bandwidth and storage.Cloud Firestore supports daily spending limits for Google App Engine projects, to make sure you don't go over the costs you're comfortable with.Read more about Cloud Firestore pricing plans.

Using Cloud Firestore and Realtime Database

You can use both databases within the same Firebase app or project. Both NoSQL databases can store the same types of data and the client libraries work in a similar manner. Keep in mind the differences outlined above if you decide to use both databases in your app.If you want to try out Cloud Firestore while it's in beta, use our getting started guide.To learn more about the features available on the Realtime Database, take a look at the Realtime Database documentation.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: