Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Firestoreを本番運用して得た知見と事件簿 / manga-village

Firestoreを本番運用して得た知見と事件簿 / manga-village

2018/08/07 Firebase Meetup#5 登壇資料

--------------------------
追記: Blazeプラン限定ですがデータのimport/exportできるようになりました
https://firebase.google.com/docs/firestore/manage-data/export-import

Hikaru Tooyama

August 07, 2018
Tweet

More Decks by Hikaru Tooyama

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ • גࣜձࣾStorm ୅දऔక໾ ԕࢁ ߊ / @vexus2 • ςΫχΧϧίϯαϧςΟϯά΍ٕज़ࢧԉɺϓϩδΣΫτϚωδϝϯτɺ

    1on1ࢧԉͳͲ • ϦʔυΤϯδχΞ/VPoE/ΤϯδχΞϦϯάϚωʔδϟͳͲྺ೚ • ݩʑBackend Engineer͕ͩ࠷ۙ͸FrontendدΓ • Ruby / Vue / Nuxt / Firebase ͳͲ • Firebaseྺ͸9ϲ݄͘Β͍
  2. ອըϏϨοδ • ແྉϚϯΨΞϓϦΛ·ͱΊͨϏϡʔΞʔαΠτ • ʮອըϏϨοδʯͰݕࡧʂ • 2018/06ϩʔϯν • 600-800ສPV/݄͘Β͍ •

    େྔʹ͋ΔϚϯΨΞϓϦͷϦϯΫू
 ͱ͍͏Ґஔ෇͚ • ւ଑൛ͷອըଜͱ͸ؔ܎͋Γ·ͤΜʢେࣄʣ
  3. ອըϏϨοδ • ແྉϚϯΨΞϓϦΛ·ͱΊͨϏϡʔΞʔαΠτ • ʮອըϏϨοδʯͰݕࡧʂ • 2018/06ϩʔϯν • 600-800ສPV/݄͘Β͍ •

    େྔʹ͋ΔϚϯΨΞϓϦͷϦϯΫू
 ͱ͍͏Ґஔ෇͚ • ւ଑൛ͷອըଜͱ͸ؔ܎͋Γ·ͤΜʢେࣄʣ ࠓ೔࿩͢಺༰͸͜Εʹؔ࿈͢Δ ։ൃɾӡ༻ͷதͰͷಘΒΕͨ஌ݟ
  4. ͭΒΈ • ࢖͑ΔQuery͸ඞཁ࠷௿ݶͳ΋ͷʹݶΒΕ͍ͯΔɻ • ౳Ձ(==) ൣғ(> >= < <=)ͷΈɻnot equal͸ͳ͍

    • ෦෼ҰகݕࡧɾશจݕࡧͳͲͰ͖ͳ͍ • ʮdescriptionʹʰკղʱͱؚ·ΕΔϚϯΨΛݕࡧʯͷΑ͏ͳ ͜ͱ͕ग़དྷͳ͍ • Sub Collectionʹର͢ΔQuery͕ʢ਌ίϨΫγϣϯΛಛఆ͍ͯ͠ͳ͍ঢ় ଶͰ͸ʣ࢖͑ͳ͍ʢࠓճ͸৮Εͳ͍ʣ
  5. Ͳ͏ͯ͜͠͏ͳͬͨ const itemData = itemDoc.data(); const title = itemData.title; batch.set(itemCollection.doc(itemData.itemId),

    { title: title.replace(/ /, ‘’) }); શσʔλΛḪٴతʹมߋ͢Δόο ν಺ɺطଘͷσʔλʹTFUͯ͠͠·ͬ ͨͨΊ্ॻ͖ͯ͠͠·ͬͨ
  6. Ͳ͏ͯ͜͠͏ͳͬͨ const itemData = itemDoc.data(); const title = itemData.title; batch.set(itemCollection.doc(itemData.itemId),

    { title: title.replace(/ /, ‘’) }); શσʔλΛḪٴతʹมߋ͢Δόο ν಺ɺطଘͷσʔλʹTFUͯ͠͠·ͬ ͨͨΊ্ॻ͖ͯ͠͠·ͬͨ batch.set(itemCollection.doc(itemData.itemId), { title: title.replace(/ /, ‘’) }, { merge: true }); batch.update(itemCollection.doc(itemData.itemId), { title: title.replace(/ /, ‘’) }); ͪ͜Βͷύλʔϯ͸ ҙਤͨ͠ڍಈ
  7. ڭ܇ • ςετίʔυେࣄ • طଘσʔλʹରͯ͠ߋ৽͢Δͱ͖͸ۃྗupdateΛ ࢖͏ • { merge: true

    } ͸ϨϏϡʔͰ΋ݟམͱ͕ͪ͠… • ʢFirestoreόοΫΞοϓ΍ϦετΞػೳ͕ૣ͘ཉ͍͠ʣ