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
Firebaseは良いけど辛い/2019-03-27-llt8
Search
Satoshi SAKAO
March 27, 2019
Technology
0
220
Firebaseは良いけど辛い/2019-03-27-llt8
社内のLTイベント「えるLT Vol.8」で発表した資料です
Satoshi SAKAO
March 27, 2019
Tweet
Share
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
69
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
0
36
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
98
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
74
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
100
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
47
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
53
ncurses/2021-05-12-llt21
ottijp
0
140
ghqでソースコードを管理しよう/2021-03-23-llt20
ottijp
0
270
Other Decks in Technology
See All in Technology
Feature Flag Deep Dive
biwashi
20
5.1k
SSMエージェントはIAMロールの夢を見るか/ Do SSM Agents Dream Of IAM Roles?
yukihirochiba
0
1.4k
SwiftUIのpropertyWrapperをふんわり理解する
jambo_develop_team
0
110
Webエンジニアのためのデータエンジニアリング概説
mtoriyama000
5
400
[2024년 3월 세미나] 다른 회사는 퍼널 분석 어떻게 하고 있을까?
datarian
1
1.6k
The Twelve-Factor App とクラウドアプリケーションのコスト
ny7760
3
260
『LeanとDevOpsの科学』をきちんと解読する 〜Four Keys だけじゃ絶対もったいなくなる話〜
bonotake
27
6.6k
SecurityCamp2023基板作るコース講義資料/Security Camp 2023 Lecture Materials
tnishinaga
5
1.3k
AIエージェントが変えるソフトウェアのパラダイム
masahiro_nishimi
0
200
Automate your changelogs! Release Drafter
onenashev
PRO
2
410
PHPerKaigi 2024 - PHP 本体のバグを見つけたら適切に報告しよう
zeriyoshi
0
770
AWS IAM の結果整合性を避けるためセッションポリシーを用いてポリシーの動作確認を行う、を解説する
yukihirochiba
0
380
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
21
3.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
272
12k
Designing Experiences People Love
moore
135
23k
Designing for Performance
lara
601
67k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
Visualization
eitanlees
135
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
Into the Great Unknown - MozCon
thekraken
10
810
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.2k
Transcript
Firebaseは良いけど辛い Satoshi SAKAO えるLT Vol.8 2019/03/27 (Wed) I1
話すひと I2 インフォコム株式会社 オープンイノベーションセンター " アプリケーションエンジニア JS (ES6) / Node.js
/ GCP / IoT / iOS (Swift) フォーカスリーディング / 技術士合格に向けた学習 Satoshi SAKAO @ottijp
話すこと • Firebaseはいいぞ • ユースケースを考えないとうまくハマらなくて詰むかもしれない • ※ 2017年の話なので注意 I3
I4 2017年にやっていた企画と検証システム
認知症ケア支援サービス I5
初期の構成 I6 Z-worksとの連携をHerokuにサービスを置いた その他はFirebaseで完結させようとしていた
Firebaseはいいぞ • サーバサイド実装,インフラ管理が不要 • データストア,ファイルストレージ,プッシュ通知, 認証,アナリティクス,FaaS • Realtime Databaseがすごい便利(NoSQL+WebSocket) •
こりゃあFirebaseだけでいけるぜ!ヒャッハー!! I7
I8 終わりの始まり
RTDBの制約が真綿のように首を締め始めた • 外部キー制約が付けられない • ソートが特定キーのみでしかできない • フィルタリングが限定的 • マイグレーションの辛さ •
同一データパスに対するビジネス条件による アクセス制御の実現が困難 I9
なんとかすればFirebaseだけで頑張れるんじゃないかという意地 • Cloud Functionsでロジックの実装 • Flashlight(ElasticSearch) で検索の補完 • ※結局別のコンピューティングインスタンスは必要 •
Cloud FireStoreの誘惑 • 当時PJの後半くらいでちょうどリリースされた I10
最終的な構成 I11 RTDBでは辛い部分はHerokuに逃げた 認証はFirebaseのみに留めた
I12 失敗と学び
失敗と学び • RTDB(NoSQL+リアルタイム同期)はすごい便利だけど, 結局Pros/Consとユースケースを考えて使わないと死ぬ • Herokuを主,Firebaseを従として, FirebaseをうまくMBaaS的に使えると良かった • スタートガイドだけではなく,もう少し実現したいシステムに 近い具体的な実装を試してみて,適合性を判断すべきだった
• 仮説検証システムでまだ傷が浅くてよかった? I13
$ exit I14