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
無限LT #3 発表1回目 Firebaseでスクレイピングした話
Search
ryo
September 15, 2019
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
無限LT #3 発表1回目 Firebaseでスクレイピングした話
ryo
September 15, 2019
More Decks by ryo
See All by ryo
Bridging Social Graphs
kawamataryo
0
360
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
1
600
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
5
2.3k
SaaS公式MCPサーバーをリリースして得た学び
kawamataryo
7
2.2k
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
1
920
ts-morphのパフォーマンス改善Tips
kawamataryo
0
140
webpack to Rspack
kawamataryo
0
140
GitHub Actions と Datadog でコードベースの定点観測
kawamataryo
7
2.1k
個人開発駆動学習 / personal development driven learning
kawamataryo
1
320
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
109
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
What's in a price? How to price your products and services
michaelherold
247
13k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Google's AI Overviews - The New Search
badams
0
1.6k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
910
Un-Boring Meetings
codingconduct
0
420
New Earth Scene 8
popppiees
4
2.6k
Six Lessons from altMBA
skipperchong
29
4.5k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
Transcript
Firebaseのリソースをフルに使って スクレイピングアプリを作った話
Agenda 1. 開発の動機 2. 要件 3. 構成図 4. アプリ紹介 5.
作ってみての所感 6. まとめ
1. 開発の動機
定期的に更新情報を 確認しているサイトがある
Firebase 勉強したい (元Fire Fighterだけに)
Firebaseで、 スクレイピングだ….!!!
2. 要件・仕様
• HPでのみ予約状況を公開しているお店 • いつも人気でキャンセル待ち • 予約状況は不定期に更新される • 空き情報のメルマガなどはない • 定期的にHPを確認するしかない
想定
仕様
仕様.1 HPから予約情報を取得できる FirebaseFunctionsでPuppeteerを 動かしてスクショを取得
仕様.2 定期的に実行できる FirebaseのCloud Scheduler で指定周期で実行
仕様.3 情報を通知できる Firebase Functionsで Slackに通知を送る
仕様.4 差分がある時だけ通知する ImageMagickで画像の差分を取得 差分がある時だけ通知を実行
仕様.5 管理画面で対象を管理したい Firebase Auth + Vue.jsで 認証機能付き管理画面作成 Firebase Hosting にホスト
3. システム構成
None
4. アプリ紹介
DEMO https://contact-form-demo-83958.firebaseapp.com/
5. 所感
5-1. 良かったところ
何より楽 インフラ考えなくて良い
TypeScript だけで完結
一通りのFirebaseの リソース触れた
5-2. 詰まったところ
無料プランでは動作しない
Cloud Schedulerの SDK経由のアップデート
node経由での ImageMagickの使い方 https://github.com/kawamataryo/firebase-fucnctions-auto-image-di ff/blob/master/functions/src/lib/imageMagick.ts#L25
6. まとめ
Firebaseいいぞ.. !!!
おわり