2017年6月23日に開催されたOtemachiFirebase#2で発表した資料です
ࣾΞϓϦͰFirebaseΛ͍ͬͯΔ@yamacraft
View Slide
profile• @yamacraft (Wataru Yamada)• Mobile Application Engineer• LeadingMark, inc• team Y.G.E.(private)
دߘͯ͠·͢ʂ• ൃചதʂʂ• 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ͰͳΜͱ͔ͳΓͦ͏ͳؾ͕͢Δ…
Εͦ͏ͳ͜ͱ• Realtime Database / AuthenticationΛࢹͯ͠…• ຊ൪σʔλͱςετσʔλͷಉظॲཧ• αΠϯΠϯΛslackʹ௨ ʼ ෆཁͳαΠϯΠϯͷ࣮ߦࢹ• HTTPτϦΨʔΛͬͯ…• chat botܦ༝ͰFCM ʼ ϩοΫղআͷ੍ޚ• ఆظ࣮ߦ ʼ ར༻͞Ε͍ͯͳ͍ΧʔυͷνΣοΫ
ҙ• ແྉͰGoogleҎ֎͔Βͷݺͼग़͕͠Ͱ͖ͳ͍ͷͰҙɻ
firebase/functions-samples
͓͠·͍ʢ࣍ճ͕͋ΕʣͦͷޙͷͩͬͨΓɺFirebaseΛͬͨWebαʔϏεఏڙͷΛ͠·͢ʂ