Vue Night in Fukuoka #1発表資料。 Nuxt.jsとFirebaseでWebアプリケーション開発。
2018/10/13追記。Nuxt v2とPWA対応について、Qiitaに記事を書きました。 「Nuxt v2とFirebase(CloudFirestore)でPWA対応Webアプリ開発」 https://qiita.com/_takeshi_24/items/3ee051e1db1b3e8da106
diffeasy. inc 17VF/JHIUJO'VLVPLB[email protected]/VYUKTͱ 'JSFCBTFͰ 8FCΞϓϦέʔγϣϯ։ൃ
View Slide
diffeasy. inc 2͏ͲΜ'JSFCBTF7VFԹઘಡॻ(PMBOH3VCZ($1ϒϩοΫνΣʔϯإೱ͍גࣜձࣾEJ⒎FBTZ σΟϑΟʔδʔऔక$50࢙ ʹ͚ͨ͠͠[email protected]@EPDLFS/VYU
diffeasy. inc 3ੈքதͷlΉ͔͍ͣ͠zΛ؆୯ʹNBLFEJ⒏DVMUUIJOHTFBTZ
diffeasy. inc 4Google͕ఏڙ͍ͯ͠ΔBaaS(Backend as a Service)
diffeasy. inc 5
diffeasy. inc 67VFKT8FCαʔόʔOHJOY QVNB 3BJMT3VCZ%#αʔόʔ.Z42-ϑϩϯτΤϯυ όοΫΤϯυ
diffeasy. inc 77VFKTϑϩϯτΤϯυ όοΫΤϯυ
diffeasy. inc 8
diffeasy. inc 9
diffeasy. inc 1010cm৳ͼ͍ͨ͠ɺऩ1,000ສཉ͍͠ʂʂ
diffeasy. inc 11͜ΜͳWebΞϓϦ ͭͬͯ͘ݟ·ͨ͠
diffeasy. inc 12
diffeasy. inc 13ʔ४උ
diffeasy. inc 14ʔ४උ
diffeasy. inc 15ʔ४උ
diffeasy. inc 16ʔ४උ
diffeasy. inc 17ʔϓϩδΣΫτ࡞OQNJOTUBMMHpSFCBTFUPPMTpSFCBTFJOJU
diffeasy. inc 18)PTUJOHΛબ'JSFCBTFͰ࡞ͨ͠ϓϩδΣΫτΛબʔϓϩδΣΫτ࡞
diffeasy. inc 19º
diffeasy. inc 20WVFJOJUOVYUDPNNVOJUZTUBSUFSUFNQMBUFTBNQMFDETBNQMFOQNJOTUBMMpSFCBTFWVFYpSFTBWFfirebaseɺvuexfireϓϥάΠϯΛར༻
diffeasy. inc 21FirebaseϓϩδΣΫτʹଓimport firebase from 'firebase'var config = {apiKey: process.env.FB_API_KEY,authDomain: process.env.FB_AUTH_DOMAIN,databaseURL: process.env.FB_DATABASE_URL,projectId: process.env.FB_PROJECTID,storageBucket: process.env.FB_STORAGE_BUCKET,messagingSenderId:process.env.FB_MESSAGING_SENDER_ID}if (!firebase.apps.length) {firebase.initializeApp(config)}export default firebase
diffeasy. inc 22ϩάΠϯೝূauth.signInWithEmailAndPassword (data['email'], data['password']).then((user) => {// ϩάΠϯޭcommit('setUser', user)}).catch((error) => {ɹ// Τϥʔॲཧ})
diffeasy. inc 23σʔλొconst db = firebase.database()const messagesRef = db.ref('messages')export const state = () => ({messages: [],}) export const actions = {addMessageRef : firebaseAction((context,data) => {messagesRef.push({uid: data.uid, text:data.text, time: 9999999999999 -Date.now()})})
diffeasy. inc 24σʔλऔಘconst db = firebase.database()const messagesRef = db.ref('messages')export const state = () => ({messages: [],}) export const actions = {initMessages :firebaseAction(({ bindFirebaseRef }) => {bindFirebaseRef('messages',messagesRef.orderByChild('time'))})}
diffeasy. inc 25ετϨʔδͷΞοϓϩʔυconst storage = firebase.storage()const storageRef = storage.ref()export const actions = {uploadAvatar (context, data) {var avatarRef =storageRef.child(data.name);avatarRef.put(data.file)}}
diffeasy. inc 26DETBNQMFOQNSVOHFOFSBUFDEpSFCBTFEFQMPZHostingαʔόʔʹσϓϩΠ{"hosting": {"public": "sample/dist"}}pSFCBTFKTPO
©2018 diffeasy Corporationιʔεͪ͜Βhttps://github.com/tkc24/firebase-simple-chat272018/10/13هNuxt v2ɺPWAରԠʹ͍ͭͯQiitaʹهࣄΛ͋͛·ͨ͠ɻ ʮNuxt v2ͱFirebase(CloudFirestore)ͰPWAରԠWebΞϓϦ։ൃʯ https://qiita.com/_takeshi_24/items/3ee051e1db1b3e8da106
diffeasy. inc 28͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ