STEAM PLACE

エンジニアリングとマネジメント

Firebase でアプリケーションレスの足音が聞こえた

f:id:dskst9:20181111232359p:plain

Cloud Firestore を使ってみたところ、単純なデータを単純に取得する WebAPI なんていらなくなると感じました。

Firestore は JavaScript からもサクッと使えてしまうので、もはや自前で WebAPI 作ったり、 FaaS 使ったりとかしなくてもこれだけで完結してしまうではないか。

  • 学習コストが低くてすぐに使える
  • クライアントアプリ(Web, iOS, Android)から利用可能
  • サーバレスの NoSQL データベース

Cloud Firestore について

公式のドキュメントが一番です。

firebase.google.com

1時間くらいちょちょっと学習するとすぐに使えてこれはすばらしい。
(AWS DynamoDB でも同じようなことができますが、 Firestore の方がシンプルでわかりやすいと感じました)

サクッと使ってみる

サクッとデータ作成

今回はコンソールからやってみました。

コレクション作って、

f:id:dskst9:20181111234157p:plain

適当にデータ突っ込んでみます。

f:id:dskst9:20181111234223p:plain

こんな感じのデータを作ってみました。

f:id:dskst9:20181111234302p:plain

スポンサーリンク

サクッとデータ取得

下記の様なコードで、

<!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>

すぐにデータが取得できます。

f:id:dskst9:20181111234532p:plain

めちゃくちゃ簡単!!!
エンジニアとしてのスキルなんてほぼいらないんじゃないかというレベル。

サクッとできないところ

ルール周りは Firebase の認証周りを理解しないと、すぐにはわからないです。
ちなみに、APIキーはプロジェクトの識別に使われるので第三者に見えてもいいみたいです。

stackoverflow.com

Firestore のルールについて、クックパッドさんがやりこんでいたので参考としてリンクさせていだきます。

techlife.cookpad.com

尚、リージョンも限られているので注意が必要です。
Cloud Firestore のロケーション  |  Firebase

アプリケーションレスというものを考えてしまう

Dataflow などでデータさえ登録してしまえば、参照はどこからでも簡単にできてしまう。
サーバレスからアプリケーションレスへと時代は移行していっているのではないと感じてしまいます。

そうなると、我々ソフトウェアエンジニアはどこへ向かっていくのだろうか。

2018.11.17 追記

社内LT大会でチャットアプリを3分で作るというのをやってみました。
本当に3分でできちゃって Firebase すごいとなりました。

ライブコーディングみたいにやったので、最終的なチャットアプリをみんなでアクセスして遊びました。

参考

qiita.com