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
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
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
500
AIのReact習熟度を測る
uhyo
2
680
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
460
不要なレビューをAIにまかせて AIコーディングの環境改善を加速した
shoota
1
260
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
3.7k
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
0
780
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
4人目のSREはAgent
tanimuyk
0
130
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
160
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
310
MUSUBI 田中裕一『AIと共に行う「しごとのリデザイン」- スモールバックオフィス編』AI Ops Lab #4
musubi
0
310
WebGIS AI Agentの紹介
_shimizu
0
550
Featured
See All Featured
BBQ
matthewcrist
89
10k
Raft: Consensus for Rubyists
vanstee
141
7.6k
The Limits of Empathy - UXLibs8
cassininazir
1
370
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Become a Pro
speakerdeck
PRO
31
6k
The SEO Collaboration Effect
kristinabergwall1
1
490
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Producing Creativity
orderedlist
PRO
348
40k
How to Ace a Technical Interview
jacobian
281
24k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
470
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
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 ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠