Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Nuxt.jsとFirebaseで個人開発した話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kenji Kawanobe
September 07, 2022
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxt.jsとFirebaseで個人開発した話
Kenji Kawanobe
September 07, 2022
More Decks by Kenji Kawanobe
See All by Kenji Kawanobe
「こわくない」Vuetifyで始めるOSSコントリビュート
kenji7157
1
260
Development of LINEBot for predicting bicycle theft using open data!!
kenji7157
0
160
自転車盗難推測Botの開発
kenji7157
0
31
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
530
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Crafting Experiences
bethany
1
310
How to build a perfect <img>
jonoalderson
1
6k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
480
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Tell your own story through comics
letsgokoyo
1
1.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Navigating Weather and Climate Data
rabernat
0
510
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
Transcript
Nuxt.jsとFirebaseで 個人開発した話 2022/09/8 フロントエンドLT会 vol.8
kenji7157 (kawanobe kenji) SoftwareEngineer #ENECHANGE #Vue #Nuxt #Firebase #GCP #最近React
Twitter: @kenji7157 Github: @kenji7157
ENECHANGE
ENECHANGE
アジェンダ 1. 個人開発で作ったもの 2. 使用技術 3. その他 a. レスポンシブ対応 #Vuetify
b. OGP画像対応 #Nuxt.js #Firebase Functions
1. 作ったもの
技術記事投稿サービス ~Ticketnote~ QiitaやZennのような技術記事投稿サービス もちろん無料です。(広告なしです。)
技術記事投稿サービス ~Ticketnote~ ticketnote 検索
2. 使用技術
使用技術 • フロント:#Nuxt.js #TypeScript #Vuetify • バック:#Firebase Functions #Node.js •
認証:#Firebase Authentification • DB:#Firestore #Algoria(Firebase Extensions) • ストレージ:#Firebase Storage • ホスティング:#Firebase Hsoting #Google App Engine
None
Vuetify #レスポンシブ対応
レスポンシブ対応 • モバイルも考慮したUI • Vuetify …UIフレームワーク • https://next.vuetifyjs.com/
Vuetify レスポンシブ対応 <template> <v-toolbar> <v-app-bar-nav-icon></v-app-bar-nav-icon> <v-toolbar-title>ツールバータイトル</v-toolbar-title> <v-spacer></v-spacer> <v-btn > ツールバーボタン
</v-btn> <v-btn icon> <v-icon>mdi-heart</v-icon> </v-btn> </v-toolbar> </template>
Vuetify レスポンシブ対応 <template> <v-toolbar> <v-app-bar-nav-icon></v-app-bar-nav-icon> <v-toolbar-title>ツールバータイトル</v-toolbar-title> <v-spacer></v-spacer> <v-btn v-if="!$vuetify.breakpoint.xs"> ツールバーボタン
</v-btn> <v-btn icon> <v-icon>mdi-heart</v-icon> </v-btn> </v-toolbar> </template>
OGP対応 #Nuxt.js #Firebase Functions
OGP • OGP…Open Graph Protcol • FacebookやTwitterにタイトルや本文、画 像、URLなどの情報を任意で表示させる HTML要素
Nuxt.jsでOGPを設定 • head()関数で設定可能 ◦ https://nuxtjs.org/docs/features/ configuration#local-settings • og:imageで画像URLを指定することによっ て、ページURLを共有する際に画像を表示 できる
◦ 画像はどうやって生成するの? <script> export default { head() { return { meta: [ { hid: 'og:description', property: 'og:description', content: '説明' }, { hid: 'og:url', property: 'og:url', content: 'ページURL' }, { hid: 'og:image', property: 'og:image', content: '画像URL' }, ] } } }; </script>
Firebase Functions で OGP用の画像生成 • 記事投稿時にFirebase Functionsを実行 ◦ Firebase FunctionsでOGP用の画像を生成
▪ canvasを利用して画像生成 • https://github.com/Automattic/node-canvas ▪ 生成した画像はFirebase Storageに保存 ▪ 保存先URLを投稿ごとに管理できるようFirestoreに登録 • 各投稿ページのSSR時に、Firestoreに登録されたURLをOGPに設定
Twiiter Slack
Vue fes 2022
ENECHANGE We are hiring!!! https://www.wantedly.com/companies/enechange