Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Server side rendering with Vue.js and Firebase ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
k2wanko
July 07, 2017
Technology
14k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Server side rendering with Vue.js and Firebase Hosting
https://vuejs-meetup.connpass.com/event/58071/
k2wanko
July 07, 2017
More Decks by k2wanko
See All by k2wanko
Sales AI Cloud "ailead" TSConfig Strictly Adopted / セールスAIクラウド「ailead」の TSConfig厳格化対応した話 /
k2wanko
4
2k
Google Analytics for Firebaseを 使うときに把握しておきたいこと / Keep in mind when using Google Analytics for Firebase
k2wanko
2
530
パスワードのない未来のための Firebaseで実装するFIDO2 / FIDO2 actualized by Firebase for the password-less future
k2wanko
5
2.5k
Firebase Auth& Performance Monitoring
k2wanko
0
380
What's New Firebase 2019 Q1 #FJUG #io19jp
k2wanko
5
2.7k
Firebase for Grow
k2wanko
5
1k
gosecを試してみた話 / try gosec
k2wanko
0
3.7k
最近のFirebase / Recent Firebase
k2wanko
4
1.7k
Firebase Japan User Group Introduction 2018 #FJUG
k2wanko
0
640
Other Decks in Technology
See All in Technology
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
24k
失敗を資産に変えるClaude Code
shinyasaita
0
280
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
2.2k
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
1k
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
3
2.1k
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
660
RAG を使わないという選択肢
tatsutaka
1
110
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
660
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
120
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
3
190
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
190
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
380
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
4 Signs Your Business is Dying
shpigford
187
22k
Building Applications with DynamoDB
mza
96
7.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Mind Mapping
helmedeiros
PRO
1
240
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
KATA
mclloyd
PRO
35
15k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Odyssey Design
rkendrick25
PRO
2
690
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Transcript
Vue.jsとFirebase Hostingで サーバサイドレンダリング @k2wanko 2017/7/7 v-meetup=”#4”
コキチーズ@k2wanko - LINE株式会社 - セキュリティエンジニア - 好きな言語はGo言語 - スプラトゥーン エンジョイ勢
サーバサイドレンダリング 知ってますか? ✋
サーバサイドレンダリング - サーバで仮想DOMからHTMLを書き出すこと なぜするか? - クローラーに対して 確実にコンテンツをインデックスしてもらうため - ファーストビューを速くするため
コキチーズの過去の挑戦 http://qiita.com/koki_cheese/items/13426921f0b5861725e5
コキチーズの過去の挑戦 - GAE/GoでVue.jsのサーバサイドレンダリングをした - gojaと言うES5をGoで実装したJSランタイムを使った - setTimeoutとかないので自前で実装した (後で作者の人がちゃんと作ってくれた) - Node.js系のAPIはwebpackの
NodeSourcePluginでモックした。 - 色々ないので自分で実装する必要があり泣いた 結論: 辛かった
Firebase とは?
Firebase - Googleが買収したBaaS 今はGoogleCloudPlatformに統合されている - リアルタイムに同期してくれるデータベースなどが特徴 - 主にAndroid/iOSがメインだけどWebでも使える
Firebase Hostingとは?
Firebase Hosting - 静的ファイルを配信してくれる Firebaseのサービスの一つ - 常時HTTP2接続 - CDNはFastlyを使ってる -
リダイレクトやルーティングを書き換えたりはできる - 独自ドメインは登録するだけで 無料で証明書を発行してくれる(Let’s Encrypt)
元々Hostingは静的ファイルを 配信するだけだった
Google IO 2017
None
Cloud Functions - イベント駆動で実行できるNode.jsのPaaS - AWSで言うところのlambda - HTTPやPubSubをトリガーにできる、 Firebaseの色んなイベントを元にも起動できる。 -
functions-samplesを見てみるとだいたいなんでもある ※ただし最適なやり方ではない場合があるので気をつけよう 例えば無駄に二度コールしてしまう実装とかある - 従量課金プランにも無料枠があり 200万コールまでは無料(2017/7/7現在) - 無料プランだと Googleのネットワークから外にはアクセスできない
HTTPトリガーの関数の書き方 deployは$ firebase deployだけで簡単にデプロイできる
Hosting + Cloud Functions
動的にコンテンツの生成が可能 hosting.rewritesにfunctionを追加すると呼び出せる。 上の設定は全てのパスのアクセスはindex関数を呼び出す。 ルーティングの優先順位は 静的ファイル > 関数
https://goo.gl/PSPhPq DEMO
None
使ったライブラリ
vue-cli + webpack-simple - Vue.jsのテンプレートを作成してくれるツール - 標準のテンプレートのwebpack-simpleをベースに作った - https://github.com/vuejs/vue-cli
vue-server-renderer - Vue.jsでサーバサイドレンダリングするためのライブラリ - 非同期でレンダリングしてくれる - Bundleレンダリングをしてくれる webpackでリソースをまとめたものからレンダリング - 別vmでrequireとかも対応
requireごとにglobalを分離 - serialize-javascriptを使って安全にscriptに書き出す。 - https://www.npmjs.com/package/vue-server-renderer
VuexFire - VueFireの作者が作ってるvuexに対応した Firebaseリアルタイムデータベースのライブラリ - 配列の場合SSRと相性が悪くて一度初期化する(Issue#87) - https://github.com/posva/vuexfire
なぜSSRをCloud Functionsでやるか
なぜSSRをCloud Functionsでやるか - リアルタイムデータベースをバックエンドにしたSPAを 簡単にSSRすることができる
None
None
None
使う時は同じAPIで利用可能
課題 - キャッシュをどこに持つか? - Google App EngineならMemcachedがあるけどFunctionsにはない - リアルタイムデータベースに持つか? -
GAEのMemcachedを使うか?
まとめ - Firebase はWebでも使える! - Hostingすごーい!便利! - Cloud Functions最高! -
FirebaseバックエンドのSPAはSSRが簡単だった - Cloud Functionsを使う場合は鍵の管理も不要で楽 - DEMOのコード https://github.com/k2wanko/md-editor
Enjoy Functions