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
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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
firebaseを使って簡単にサイト作成!半年でそれっぽい クイズアプリを作成する!
Search
YukiWatanabe
February 02, 2023
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
firebaseを使って簡単にサイト作成!半年でそれっぽい クイズアプリを作成する!
https://pwanight.connpass.com/event/194223/
で発表した資料です。
YukiWatanabe
February 02, 2023
More Decks by YukiWatanabe
See All by YukiWatanabe
Chrome拡張機能の新機能 Side Panel APIについて
yutaroud
0
2k
Other Decks in Programming
See All in Programming
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
1.8k
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
640
デプロイ直後のレイテンシスパイクを調べたら、 Railsの仕様にたどり着いた
nhsykym
0
110
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
1.1k
スマート反転とウェブアクセシビリティ
camiha
0
180
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
300
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
ALB ログから Trace を気合で繋げる技術
fohte
7
880
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
150
Intent as Code
shoppingjaws
6
860
自分的「カンファレンスの楽しみ方」
syumai
0
200
Featured
See All Featured
Done Done
chrislema
186
16k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
WENDY [Excerpt]
tessaabrams
13
39k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Designing for Performance
lara
611
70k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Optimizing for Happiness
mojombo
378
71k
Side Projects
sachag
456
43k
Transcript
2020/11/18 PWA Night vol.22 firebaseで簡単にサイトを作りましょう! 半年でそれっぽい クイズアプリを作成する
サービスの紹介 ◦クイズを作ったり、解いたりできる ◦何かを「学びたい」時に使ってもらう ▪繰り返し解いて学べる ▪問題を作ることで学びになる ここからアクセスできます 🙂
今日話すこと 機能紹介 • クイズ解答機能 • クイズ作成機能 • マイページ • メディア
システムの裏側 • こんな技術を使いました • 工夫した箇所 \こんなことを話します!/
MDNでは 安全なコンテキスト (HTTPS)、1つ以上のサービスワー カー、マニフェストファイルを持つ※1 みんなのスタディはサービスワーカーは使ってません。 (オフライン利用等できないのでご認識お願いします) ※1 https://developer.mozilla.org/ja/docs/Web/Progressive_web_apps 前置き PWAの定義(諸説あります)
01 機能紹介
機能紹介① クイズを解く
機能紹介② クイズを作る マイページ
機能紹介③ メディア
02 システムの裏側 Behind the system
サイト構成 route53 firestore firebase Auth firebase hosting cloud function react
サイト構成 route53 firestore firebase Auth firebase hosting cloud function react
OGP対応 OGPの例 Botによっては、jsを正しく解釈できない可能性があるので、 予めビルドしたものを解釈させる必要がある。
OGP対応 "hosting": { "public": "build", "rewrites": [ { "source": "/answer/**",
"function": "returnHtmlWithOGP" }, ~~~~~~ ], ~~~~~~~ } firebase.jsonに特定のリクエストのときだけ、 別途定義したfunctionを使うように指定するだけ!
サイト構成 route53 firestore firebase Auth firebase hosting cloud function react
持っているデータ クイズデータ ユーザデータ
クイズデータについて クイズデータ quiz: { categories: { label: “ビジネス” value: “business”
} userId: 1 creater: “なべ” title: “マーケ用語検定” description: “〜〜〜” content: { 0: { question: “CTAはなんの略” explanation: “マーケ用語で~~” answer: “Call to Action” false1: “~~~” false2: “~~~” } 1: {~~} } limited: false createdAt: xxxx/xx/xx updatedAt: xxxx/xx/xx }
なぜこんなデータ構成? 1書き込み、読み込みあたりに料金がかかるため
キャッシュもできます cloud function firebase hosting 予めfirestoreから データ取得 キャッシュした データから読み込み
使ってみてよかったこと • 環境構築がかなり楽、スピードは早い。 • 関連機能がかなりあるので、簡単なアプリ作成はかなり 楽
使ってみてつらかったこと • 従量課金のため、いつ課金されるかが怖い ◦ Alertの設定はマスト 無料プランもあるが、cloud functionsが使えない。 • インフラ側の細かいチューニングがやりづらい
Thanks ありがとうございました!