PWA導入を楽にするFirebase
by
Daiki Takaya
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
PWA導入を楽にする Firebase 株式会社ソニックガーデン 高谷大樹
Slide 2
Slide 2 text
自己紹介 高谷大樹(たかやだいき) 埼玉在住 24歳 2018年新卒でソニックガーデンに入社 夢: 「 おじいさんになってもお酒とプログラミングは現役で いること」
Slide 3
Slide 3 text
普段の活動 まかない食堂
Slide 4
Slide 4 text
Firebaseって? 1. サーバーレス => googleさんのサーバーと fastlyのCDN 2. クライアントだけでデータの永続化 3. 超簡単なデプロイ作業
Slide 5
Slide 5 text
今までのweb
Slide 6
Slide 6 text
Firebase デプロイ! googleサーバ Fastly製
Slide 7
Slide 7 text
Firebaseはなにが 嬉しいのか?
Slide 8
Slide 8 text
全部セットアップされてるぜ WEBサーバー, APPサーバーを入れなくても大 丈夫! nginx, unicorn, MySQLなにそれ? うまいの?から始められる。
Slide 9
Slide 9 text
基本は無料 PWAを試すぐらいには十分! 外部APIを叩く, データのバックアップなどしな ければ、無料で利用できる。
Slide 10
Slide 10 text
セットアップ方法 1. まずは登録 2. CDNで読み込み 3. Firebase Toolsをnpmでインストール
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
const config = { apiKey: "<API_KEY>", authDomain: "<PROJECT_ID>.firebaseapp.com", databaseURL: "https://<DATABASE_NAME>.firebaseio.com", storageBucket: "<BUCKET>.appspot.com", messagingSenderId: "<SENDER_ID>", }; firebase.initializeApp(config);
Slide 15
Slide 15 text
辛いサーバーセットアップからの 解放
Slide 16
Slide 16 text
{ "hosting": { "public": "dist", "rewrites": [ { "source": "**", "destination": "/index.html" } ] } } firebase.json
Slide 17
Slide 17 text
Vue CLIしてプロジェクトの雛形作成 https://qiita.com/567000/items/dde495d6a8ad1c2 5fa43 $ npm install -g vue-cli $ vue init webpack my-project
Slide 18
Slide 18 text
1. npm install -g firebase-tools 2. $ cd ~/my-project(作業dir) 3. $ firebase init 4. $ firebase deploy
Slide 19
Slide 19 text
どうやってデータ保存? Cloud Fire Store Real Time Database
Slide 20
Slide 20 text
データの追加方法 var admin = require("firebase-admin"); var db = admin.database(); var usersRef = db.ref.child("users"); usersRef.set({ { name: “高谷”, age: 24, email: “
[email protected]
” });
Slide 21
Slide 21 text
データのCRUD 1. set(データ作成, すでにデータがあると上 書き) 2. update(そのまま) 3. add(JSONツリーにデータを追加) 4. transaction(そのまま)
Slide 22
Slide 22 text
どれもkey value形式
Slide 23
Slide 23 text
正規化は捨てよう!(1) データはフラットに! 深いネストは悪
Slide 24
Slide 24 text
正規化は捨てよう!(2) { "chats": { "room01": { "title": "チャットルーム01", "messages": { "message01": { "sender": "Fumihiko Shiroyama", "message": "こんにちは。誰かいますか? " }, "message02": { ... }, "message03": { ... } } }, "room02": { ... } } }
Slide 25
Slide 25 text
正規化は捨てよう!(3) { "users": { "shiroyama": { "name": "Fumihiko Shiroyama" }, }, "rooms": { "room01": {} }, "room02": { ... } }, "messages": { "room01": { "message01": { "sender": "shiroyama", "message": "こんにちは。誰かいますか?" }, } }
Slide 26
Slide 26 text
まとめ 1. サーバー管理からの解放 2. CDNで簡単な導入 3. 無料
Slide 27
Slide 27 text
ご静聴ありがとうございました。