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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
コミットの「なぜ」を読む
ota1022
0
120
元銀行員がAIだけでアプリを量産!「バイブコーディング実演セミナー 」
tatsuya1970
0
110
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
210
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
160
AIチャット検索改善の3週間
kworkdev
PRO
2
170
フィジカル版Github Onshapeの紹介
shiba_8ro
0
320
WebGIS AI Agentの紹介
_shimizu
0
550
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
180
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.4k
4人目のSREはAgent
tanimuyk
0
150
AIが自律的に回る開発ループを設計してチーム開発に組み込む
nekorush14
0
130
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
0
120
Featured
See All Featured
Designing for Performance
lara
611
70k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Why Our Code Smells
bkeepers
PRO
340
58k
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
Product Roadmaps are Hard
iamctodd
PRO
55
12k
First, design no harm
axbom
PRO
2
1.2k
So, you think you're a good person
axbom
PRO
2
2.1k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
180
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 ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠