みなさん、こんにちは。どんぶラッコです。
プログラミングの学習を始めたばかりの方から「Firestoreって何がいいの?」という質問を受けました
今回は、学習を始めたばかりのエンジニアに向けて、Firestoreは何がいいのか、どんぶラッコの視点からお伝えしたいと思います!
最初にポイントだけまとめておくとこんな感じです。
- サーバの構築がいらない!
- データ制約を気にせずデータを投げられる!
- リアルタイム更新の関数が用意されている!
1. サーバの構築がいらない!
本来、データベースサーバは、自分でサーバを立ち上げて、RDMSのサービスを導入し、パフォーマンスをチューニングし…と、使える状態になるまでの道のりがとても長いものでした。
しかし、FireStoreの場合、Webサービス上で設定を記述するだけですぐに利用が可能になってしまう点が革新的です。
これにより、インフラ構築にかかる労力が大幅に圧縮され、FirestoreWebアプリを作る際のデータベースとして多く利用されるようになりました。
2. データ制約を気にせずデータを投げられる!
伝わり方に語弊が生まれてしまうと思いますが、あえてこのような表現をしました。
Firestoreに代表されるNoSQLが登場するまでは、RDB形式でデータを格納することが一般的でした。RDBはMySQLなどが有名ですね。
例えば books
というテーブルを作る場合、こんな感じです。
books
id author title
1 太郎 太郎の大冒険
2 次郎 次郎のワクワククッキング
…
books テーブルには id
と author
、title
というカラムがあります、と定義していますね。そしたら、それ以外の値を入力することができなかったのです。
{
author: '三郎',
title: '三郎列伝'
}
というデータは新しく追加することができますが、
{
author: '三郎',
title: '三郎列伝',
published_at: '2020-11-20'
}
というデータを追加しようとするとエラーになります。 published_at
なんて定義してねーじゃねーか!という具合に。
firestoreはこのようにデータ型が違ったとしても受け入れてくれます。
なので、学習したての頃のデータベースの意義を学習する用途やハッカソンなどのとにかくスピードを求められる場面で活躍します!
3. リアルタイム更新の関数が用意されている!
これもかなり大きな特徴ですね。 onSnapshot()
関数などを用いれば websocketの機能を手軽に実装することができます。これもすごいことですよ。だって、この機能があることでチャット機能などが割と手軽に実装できてしまうんですから!
プログラミングの面白さを知るために、Firestoreはとても良い題材です。みなさんも是非一度試してみてはいかがでしょうか