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を使っている話
Search
yamacraft
June 23, 2017
Programming
2k
2
Share
社内用アプリでFirebaseを使っている話
2017年6月23日に開催されたOtemachiFirebase#2で発表した資料です
yamacraft
June 23, 2017
More Decks by yamacraft
See All by yamacraft
なぜアプリのデザインとその実装はうまくいかないのか?
yamacraft
0
220
あんまり触れられてない気がする、Kotlin1.3の ありがたい追加機能
yamacraft
0
3.2k
ありがたいUIをもっと大事にしたい
yamacraft
2
2.4k
Quickstart-android/mlkitについて
yamacraft
2
5k
Firebase関連をCIでデプロイするときのTips
yamacraft
0
5.1k
開発用途で Realtime Databaseを 導入した話
yamacraft
2
4.6k
ciecleci/androidのOpenSSLに気をつけよう
yamacraft
0
730
Realtime Databaseに向いてる・向いてないサービス
yamacraft
0
980
弊社のアプリ開発CI環境
yamacraft
0
1.2k
Other Decks in Programming
See All in Programming
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
210
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
1
160
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.7k
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
160
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
210
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
130
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
170
GoogleCloudとterraform完全に理解した
terisuke
1
200
継続的な負荷検証を目指して
pyama86
3
1.2k
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
190
【ディップ|26年新卒研修資料】TDD実装演習
dip_tech
PRO
0
240
SkillsをS3 Filesに置く時のあれこれ
watany
3
1.7k
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The browser strikes back
jonoalderson
0
1.1k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
A Soul's Torment
seathinner
6
2.8k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
250
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Color Theory Basics | Prateek | Gurzu
gurzu
0
310
Transcript
ࣾΞϓϦͰ FirebaseΛ͍ͬͯΔ @yamacraft
profile • @yamacraft (Wataru Yamada) • Mobile Application Engineer •
LeadingMark, inc • team Y.G.E.(private)
None
دߘͯ͠·͢ʂ • ൃചதʂʂ • Android 7.0/7.1 • Firebase (Android/iOS) •
Analytics • Notifications
ࢀߟࢿྉʢίʔυ෦ʣ • https://gist.github.com/yamacraft/ c232359e28db4fcbca9ef2bd2420fe87 • Shortener > https://goo.gl/gJsbHo
ࠓճͷൃද༰ ʮ͍·ͬͯΔ͜ͱʯ ʮ·ͩͬͯͳ͍͜ͱʯ ʮ͍͔ͭΓ͍ͨ͜ͱʯ Ͱ͓ૹΓ͠·͢
ຊ
εϚʔτϩοΫʹΑΔղৣ
ݱࡏͷ
ೖ੍ࣨޚΞϓϦͰղܾʢ༧ఆʣ
ΞϓϦͷ֓ཁਤ
ࠓճ͜͜ͷΛ͠·͢
ࠓճར༻͍ͯ͠Δػೳ • Realtime Database • ϢʔβʔʢʴΧʔυʣͷొͱಡΈࠐΈ • Authentication • GoogleೝূʴDBͷॻ͖ࠐΈ੍ݶ
• ʢAnalyticsɺCrash Reportingʣ
Realtime Databaseͷߏ • ෳࡶʹ͢ΔϝϦοτ ͳ͍ͷͰγϯϓϧʹ • ϓϩδΣΫτΛෳ ཧ͢Δͷ͕໘ͦ͏ͳ ͷͰɺ͍ͬͨΜಉ͡ϓ ϩδΣΫτͰςετͱ
ຊ൪σʔλΛཧʢΑ Ζ͘͠ͳ͍ʣ
Cardใ෦Ϋϥε
Database Client
Database Clientॲཧ • items/ҎԼͷσʔλมߋΛࢹʢValueEventListenerʣ • มԽ͕͋ΕίʔϧόοΫΛͬͯར༻ݩΫϥεʹ DataSnapshotΛૹΔ • ར༻ݩΫϥεʢࠓճViewModelଆʣͰσʔλͷ ܗͱরձΧʔυϦετใΛߋ৽͢Δ
• ܗ·Ͱ͜͜Ͱͬͨํ͕͍͍ͷ͔ͳ…Θ͔ΒΜʂ
ܗ෦ʢViewModelʣ
ॻ͖ࠐΈͱͯ୯७ • ͨͩ͠ɺʢࠓճͷΞϓϦʣಛఆͷGoogleΞ ΧϯτͰೝূ͍ͯ͠Δඞཁ͕͋Γ·͢
RealtimeDatabaseͰ͍͍ͳͱ ࢥͬͨͱ͜Ζ • ཧଆͰDBΛมߋʢՃʗআʗߋ৽ʣͤ͞Δͱར༻ ͷDB͕ଈ࠲ʹߋ৽͞ΕΔ • ϙʔϦϯάΈ͍ͨͳॲཧ͕ෆཁʂศརʂ • REST API͕༻ҙ͞Ε͍ͯΔ
• ͖ͳݴޠͰσʔλ੍ޚͰ͖Δ • ೝূ੍ޚ͕བྷΉͱͪΐͬͱ͔͍͔ͬ͠Εͳ͍
Firebase Admin Python SDK ɺͪΐͬͱղઆॻ͖·ͨ͠
AuthenticationʹΑΔ੍ݶ • ಡΈࠐΈ੍ݶͳ͠ʢಛʹൿಗ͖͢ใͳ͍ͨΊʣ • ॻ͖ࠐΈಛఆϢʔβʔʢGoogleΞΧϯτʣͷΈͱ ͢Δ
AuthenticationʢUIDऔಘʣ ʹ͍ͭͯ • firebase/quickstartͷαϯϓϧͦͷ··ͳͷ Ͱɺ͋·ΓޠΕΔͱ͜Ζͳ͍Ͱ͢… • UIDೝূޙͰͳ͍ͱ֬ೝͰ͖ͳ͍ͷͰҙ
Authenticationͷิ • ͪͳΈʹGoogleೝূͷ߹ɺΞΧϯτͷ ϝʔϧΞυϨε͕औಘͰ͖·͢
ݱ࣌Ͱߟ͑͏Δݒ೦ • ॳճͷಡΈࠐΈ͕ͪΐͬͱ͔͔࣌ؒΔҹ͕͋Δ • ͱ͍͑جຊৗ࣌ىಈͳͷͰগͳ͍ ͣ…ʁ • Ϣʔβʔʢۈऀʣ͕૿͑ͨͱ͖ͷཧӡ༻࣌ͷ ࢹ͕ΞϓϦ͚ͩͰͪΐͬͱΊΜͲͦ͘͞͏… •
Cloud FunctionͰͳΜͱ͔ͳΓͦ͏ͳؾ͕͢Δ…
None
Εͦ͏ͳ͜ͱ • Realtime Database / AuthenticationΛࢹͯ͠… • ຊ൪σʔλͱςετσʔλͷಉظॲཧ • αΠϯΠϯΛslackʹ௨
ʼ ෆཁͳαΠϯΠϯͷ࣮ߦࢹ • HTTPτϦΨʔΛͬͯ… • chat botܦ༝ͰFCM ʼ ϩοΫղআͷ੍ޚ • ఆظ࣮ߦ ʼ ར༻͞Ε͍ͯͳ͍ΧʔυͷνΣοΫ
ҙ • ແྉͰGoogleҎ֎͔Βͷݺͼग़͕͠Ͱ͖ ͳ͍ͷͰҙɻ
firebase/functions-samples
͓͠·͍ ʢ࣍ճ͕͋ΕʣͦͷޙͷͩͬͨΓɺFirebase ΛͬͨWebαʔϏεఏڙͷΛ͠·͢ʂ