Cloud Firestore を使ってみたところ、単純なデータを単純に取得する WebAPI なんていらなくなると感じました。
Firestore は JavaScript からもサクッと使えてしまうので、もはや自前で WebAPI 作ったり、 FaaS 使ったりとかしなくてもこれだけで完結してしまうではないか。
- 学習コストが低くてすぐに使える
- クライアントアプリ(Web, iOS, Android)から利用可能
- サーバレスの NoSQL データベース
Cloud Firestore について
公式のドキュメントが一番です。
1時間くらいちょちょっと学習するとすぐに使えてこれはすばらしい。
(AWS DynamoDB でも同じようなことができますが、 Firestore の方がシンプルでわかりやすいと感じました)
サクッと使ってみる
サクッとデータ作成
今回はコンソールからやってみました。
コレクション作って、
適当にデータ突っ込んでみます。
こんな感じのデータを作ってみました。
サクッとデータ取得
下記の様なコードで、
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Sample for Firestore</title> </head> <body> <p>This is Sample for Firestore</p> <script src="https://www.gstatic.com/firebasejs/4.12.1/firebase.js"></script> <script src="https://www.gstatic.com/firebasejs/4.12.1/firebase-firestore.js"></script> <script type="text/javascript"> firebase.initializeApp({ apiKey: 'This is API Key', authDomain: 'localhost', projectId: 'This is Project ID' }); // Initialize Cloud Firestore through Firebase var db = firebase.firestore(); db.collection("books").get().then(function(querySnapshot) { querySnapshot.forEach(function(doc) { // doc.data() is never undefined for query doc snapshots console.log(doc.id, " => ", doc.data()); }); }); </script> </body> </html>
すぐにデータが取得できます。
めちゃくちゃ簡単!!!
エンジニアとしてのスキルなんてほぼいらないんじゃないかというレベル。
サクッとできないところ
ルール周りは Firebase の認証周りを理解しないと、すぐにはわからないです。
ちなみに、APIキーはプロジェクトの識別に使われるので第三者に見えてもいいみたいです。
Firestore のルールについて、クックパッドさんがやりこんでいたので参考としてリンクさせていだきます。
尚、リージョンも限られているので注意が必要です。
Cloud Firestore のロケーション | Firebase
アプリケーションレスというものを考えてしまう
Dataflow などでデータさえ登録してしまえば、参照はどこからでも簡単にできてしまう。
サーバレスからアプリケーションレスへと時代は移行していっているのではないと感じてしまいます。
そうなると、我々ソフトウェアエンジニアはどこへ向かっていくのだろうか。
2018.11.17 追記
社内LT大会でチャットアプリを3分で作るというのをやってみました。
本当に3分でできちゃって Firebase すごいとなりました。
ライブコーディングみたいにやったので、最終的なチャットアプリをみんなでアクセスして遊びました。