Cloud FirestoreとFirebase Realtime Databaseの違い




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

概要

基本的にはCloud Firestoreを使うのがいいのかなと思います。Googleのドキュメントにもそうのように書かれていたので!

https://firebase.google.com/docs/database/rtdb-vs-firestore?hl=ja

Realtime Database

Realtime Database は Firebase の元のデータベースです。これは、リアルタイムでクライアント全体の状態を同期させる必要があるモバイルアプリ向けの効率的で低レイテンシのソリューションです。

Cloud Firestore

Cloud Firestore は、Firebase のモバイルアプリ開発用の新しい主力データベースです。直感的な新しいデータモデルで、Realtime Database の成果をさらに向上しています。Cloud Firestore は、Realtime Database よりも豊かで高速なクエリとスケールを備えています。

データモデル

Realtime Database

データを 1 つの大きな JSON ツリーとして保存します。

  • シンプルなデータは非常に簡単に保存できます。
  • 複雑で階層的なデータは、大規模に整理することは困難です。

Cloud Store

コレクションにまとめられたドキュメントにデータを保存します。

  • シンプルなデータはドキュメントに保存するのが簡単です。これは JSON と非常によく似ています。
  • 複雑で階層的なデータは、ドキュメント内のサブコレクションを使用することで、大規模に整理するのが簡単になります。
  • 非正規化とデータの平坦化が少なくて済みます。

スケーラビリティ

Realtime Database

スケーリングにはシャーディングが必要です。

1 つのデータベースで、約 100,000 件の同時接続と、毎秒 1,000 回の書き込みまでスケールできます。それを超えるスケーリングでは、複数のデータベースにまたがるデータのシャーディングが必要になります。

Cloud Store

スケーリングは自動的に行われます。

(ベータ後に)完全に自動的にスケールされるため、複数のインスタンスにデータをシャーディングする必要はありません。

料金

Realtime Database

帯域幅とストレージにのみ課金されますが、課金レートは高くなります。

Cloud Store

主にデータベースで実行されているオペレーション(読み取り、書き込み、削除)に課金され、帯域幅とストレージの課金レートは低くなります。

実装

WEBでの実装比較を行います

必要なライブラリ

firebase-app.jsはどちらも必須で、それぞれfirebase-database.jsとfirebase-firestore.jsを使用します。

  • Realtime Database
  • Cloud Firestore

初期設定

初期設定はRealtime DatabaseでもCloud Firestoreでも同じでした。

リアルタイム読み込み

  • Realtime Database

  • Cloud Firestore

書き込み

  • Realtime Database

  • Cloud Firestore

 

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 現在はTwitterなどSNSのテキスト解析を行うソーシャルメディア分析のサーバーサイドを開発中。言語はNode.js、Kotlinを使用。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です