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
Authから始めるFirebaseの第一歩
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
massyuu
February 21, 2019
Technology
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Authから始めるFirebaseの第一歩
massyuu
February 21, 2019
More Decks by massyuu
See All by massyuu
多様な事業ドメインのクリエイターへ 価値を届けるための営みについて
massyuu
1
970
僕が仕事を楽しむメンタルモデル
massyuu
0
590
自分のTwitter利用を振り返ってみる
massyuu
0
110
Vue×Nativeの開発を簡単にしたかったのです
massyuu
0
430
RealWorldHTTPを読んでみた
massyuu
1
600
私の知らないPythonの世界
massyuu
1
580
Pythonのアプリ開発にElectronという選択肢
massyuu
1
2.4k
Other Decks in Technology
See All in Technology
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
160
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
4
770
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
150
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
23
7.5k
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
180
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
1.8k
現場のトークンマネジメント
dak2
1
190
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
130
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
160
4人目のSREはAgent
tanimuyk
0
140
WebGIS AI Agentの紹介
_shimizu
0
550
When Platform Engineering Meets GenAI
sucitw
0
170
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
Design in an AI World
tapps
1
250
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Designing for humans not robots
tammielis
254
26k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
How to build a perfect <img>
jonoalderson
1
5.7k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
The agentic SEO stack - context over prompts
schlessera
0
820
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
420
Context Engineering - Making Every Token Count
addyosmani
9
980
Transcript
"VUI͔Β࢝ΊΔ'JSFCBTFͷୈҰา 'VLVPLB'JSFCBTF !NBTTZVV
ࣗݾհ ӹాɹ༞ีˏNBTTZVV 4FOUSFTFBV*OD αʔόʔαΠυ͔Β͋͛Τϯδχϟʔ UXJUUFS!NBTTZVV
ࠓͷ͓ ΈΜͳେ͖Ϣʔβʔೝূʹ͍ͭͯ
'JSFCBTF"VUIFOUJDBUJPO • 'JSFCBTF͕ఏڙ͍ͯ͠ΔϢʔβʔೝূػೳ • ΞϓϦέʔγϣϯͷϢʔβʔΛ؆୯ʹೝূɾࣝผͯ͘͠ΕΔ • 4%,Λར༻͢Δ͔ɺ6*ϥΠϒϥϦʹΑΓ؆୯ʹ࣮͢Δ͜ͱ͕Մೳ • ༷ʑͳํ๏ͰͷೝূΛఏڙՄೳ •
ϝʔϧΞυϨεʢˍύεϫʔυʣ • ి൪߸ • 4/4ೝূʢ5XJUUFSɺ'BDFCPPLɺ(PPHMFɺ(JU)VCͳͲʣ • ύεϫʔυͳͲࣗલͷ%#ʹอଘ͠ͳ͍Ͱ͍͍ͷ͕ྑ͖ • ݸਓతʹҰ൪͖͔͠Εͳ͍αʔϏε
'JSFCBTF4%,"VUIFOUJDBUJPO • 4%,ͱͯ͠ఏڙ͞ΕΔೝূػೳΛඞཁʹԠͯࣗ͡લͰΈࠐΜͰ͍͘ελΠϧ • 6*ؚΊͯࣗલͰ࡞ΔͷͰɺطଘγεςϜʹՃ͢Δͱ͔ͳΒͬͪ͜ͷํ͕Γ͍͢ʁ • "OESPJEɺJ04ɺ8&#ʢ+4ʣͷଞɺ$ 6OJUZͰར༻Մೳ • ి൪߸ೝূ$
6OJUZΛআ͘ • 8&#ͰΑ͘ݟ͔͚Δ'JSFCBTF"VUIFOUJDBUJPO
'JSFCBTF6*"VUI • ެ͓ࣜ͢͢Ί • 6*ΛؚΊͨೝূػೳΛఏڙ • 6*ఏڙͯ͘͠ΕΔͷͰϩάΠϯपΓͷॲཧΛ·Δͬͱ'JSFCBTFʹͤΔ͜ͱ͕Ͱ͖Δ • (JU)VCʢ8FC༻ϦϙδτϦɾσϞϖʔδʣ •
IUUQTHJUIVCDPNGJSFCBTFGJSFCBTFVJXFC • IUUQTGJSVJEFNPBDGJSFCBTFBQQDPN • ެࣜʹ"OESPJEɺJ04ɺ8&#ʢ+4ʣͰར༻Մೳͱ͍ͯ͠Δ • 3FBDU"OHVMBS༻ʹϥοϓ͞ΕͨϦϙδτϦ͋ͬͨΓ
8&#ͷ"VUIΛࢼͯ͠ΈΔ
ͳʹΛ͢Δ͔ • 7VFKTͰϩάΠϯ͢Δ͚ͩͷը໘Λͭ͘Δ • &NBJM • 5XJUUFSΞΧϯτ • (PPHMFΞΧϯτ •
ϩάΠϯϢʔβʔͷใ4/4ͷొใ͕͋ΕͦͪΒΛར༻͢Δ
'JSFCBTFͷઃఆ • ϓϩδΣΫτΛ࡞Δ • ίϯιʔϧ͔Β৽͍͠ϓϩδΣΫτΛՃ • ΞϓϦʹεχϖοτΛίϐϖͯ͠'JSFCBTFΛՃ • ϩάΠϯํ๏Λઃఆ •
ࠓճ&NBJMɺ5XJUUFSɺ(PPHMFΛ༗ޮԽ • ࣄલʹ5XJUUFS"QQΛ࡞͓ͯ͘͠
5XJUUFSઃఆͷิ 5XJUUFS"QQͷΩʔ ใΛ͜͜ʹొ ͜ͷίʔϧόοΫ 63-5XJUUFS"QQ ଆʹొ͢Δ
4%,Ͱͷ࣮
GJSFCBTFͷϞδϡʔϧΛ࡞Δ 'JSFCBTFͷઃఆૢ࡞ΛϞδϡʔϧʹ·ͱΊ͓ͯ͘ // Initialize Firebase const config =
{ apiKey: ‘apiKey wo Kokoni input', authDomain: 'vue-fb-auth.firebaseapp.com', databaseURL: 'https://vue-fb-auth.firebaseio.com', projectId: 'vue-fb-auth', storageBucket: ‘', messagingSenderId: '813627810276' } export default { // FirebaseॳظԽ init() { firebase.initializeApp(config) firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION) }, // GoogleϩάΠϯॲཧ googleLogin() { // GoogleϩάΠϯͷॲཧ༰Λ͜͜ʹ }, ͱ͔ ͳͲͳͲ
ϩάΠϯɾϩάΞτͷهड़ ྫ͑5XJUUFSϩάΠϯΛ࣮͢Δ߹ͷهड़͜Ε͚ͩ ϩάΞτͷ࣮ ͰऴΘΔͷͰΊͬͪΌ؆୯ ͋ͱ͜ΕΛίϯϙʔωϯτଆͰར༻͢Δ͚ͩ // ϩάΞτॲཧ logout()
{ firebase.auth().signOut() }, // TwitterϩάΠϯॲཧ twitterLogin() { const Provider = new firebase.auth.TwitterAuthProvider() firebase.auth().signInWithPopup(Provider) },
0, 4%,Ͱ؆୯ʹ࡞ΕΔͷΘ͔ͬͨ
6*"VUIͰͷ࣮
GJSFCBTF6*ͷϞδϡʔϧΛ࡞Δ 'JSFCBTFͱ'JSFCBTF6*ͷઃఆૢ࡞ΛϞδϡʔϧʹ·ͱΊ͓ͯ͘ 'JSFCBTFͷઃఆ4%,Λ͏࣌ͱಉ༷ // Initialize Firebase const config
= { apiKey: ‘apiKey wo Kokoni input', authDomain: 'vue-fb-auth.firebaseapp.com', databaseURL: 'https://vue-fb-auth.firebaseio.com', projectId: 'vue-fb-auth', storageBucket: ‘', messagingSenderId: '813627810276' }
GJSFCBTF6*ͷϞδϡʔϧΛ࡞Δ 'JSFCBTF6*ͷઃఆ͜Μͳײ͡ const uiConfig = { // ϙοϓΞοϓදࣔ
signInFlow: 'popup', // ϩάΠϯޭ࣌ͷΓURL signInSuccessUrl: '/auth', // ϩάΠϯͷํ๏ signInOptions: [ firebase.auth.GoogleAuthProvider.PROVIDER_ID, firebase.auth.TwitterAuthProvider.PROVIDER_ID, firebase.auth.EmailAuthProvider.PROVIDER_ID ], // ϦμΠϨΫτͷઃఆ callbacks: { signInSuccessWithAuthResult: () => { return true } } } ͦͷଞʹ͍͔ͭ͘Φϓγϣϯͷઃఆ͕͋Γ·͢
GJSFCBTF6*ͷϏϡʔ 'JSFCBTF6*ͷϩάΦϯը໘Λݺͼग़͢ίʔυ͜Ε͚ͩ <div id="firebaseui-auth-container"></div> ɹɹˢ ɹ͜Ε͕ ɹɹ͜͏ͳΔɹˠ
ͪΐͬͱσϞ
·ͱΊͱॴײ • 4%,ɺ6*ͷ͍ͣΕ࣮ࣗମ؆୯ • ͬ͘͞ͱϩάΠϯॲཧΛ࡞Γ͍ͨͳΒ6*͏ͷ͋Γ • ϨϯμϦϯάʹएׯͷϥά͕͋ΔͷͰɺݟͤํ͔ͬ͠Γͱ •
ຊޠͷใ4%,ͷํ͕ଟΊΈ͍ͨ • αʔϏεͷσβΠϯʹدͤΔͳΒ4%,͏ํ͕ແͳͷ͔ͳ • ͋ͱɺ3VMFTͷઃఆେࣄ
ऴ ੍࡞ɾஶ࡞ NBTTZVV ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠