Slide 1

Slide 1 text

Firestoreͷϧʔϧઃఆ ׂͱԿͰ΋ग़དྷͯϏϏΔ גࣜձࣾRe:Build Յ਺ ါىʢ@kkznchʣ 2019೥5݄17೔ʢۚʣ WebφΠτٶ࡚ Vol.4 ʙͯ͛FirebaseΛֶͼ͍ͨʙ

Slide 2

Slide 2 text

͚͚ͣΜ @kkznch Յ਺ ါى 1990೥ͷԭೄੜ·Ε ిྗձࣾͷITΠϯϑϥɺηΩϡϦςΟ ↓ גࣜձࣾRe:BuildͰWebΤϯδχΞ

Slide 3

Slide 3 text

ձࣾ঺հ • גࣜձࣾRe:Buildʢ2017೥11݄ʹઃཱʣ • ݱࡏͷࣾһ਺͸໊̑ • ԭೄΛڌ఺ͱ͠ɺجຊతʹ͸Laravel΍Vue.jsΛ ࢖ͬͯडୗɾࣗࣾαʔϏε։ൃΛ͍ͯ͠Δ • ϦϞʔτϫʔΫɺࣗ༝ͳಇ͖ํΛਪ঑͍ͯ͠Δ

Slide 4

Slide 4 text

Firestore

Slide 5

Slide 5 text

Google͕ఏڙ͢ΔNoSQL DB

Slide 6

Slide 6 text

֊૚ܕσʔλߏ଄ ΞΫηεϧʔϧΛઃఆͰ͖Δ

Slide 7

Slide 7 text

΋͠ϧʔϧΛઃఆ͠ͳ͍ͱ…

Slide 8

Slide 8 text

Databaseͷϧʔϧ

Slide 9

Slide 9 text

֊૚͝ͱʹϧʔϧΛద༻ usersͱɺͦͷதͷimagesʹ ରͯͦ͠ΕͧΕϧʔϧΛద༻Ͱ͖Δ service cloud.firestore { match /databases/{database}/documents { match /users/{userId} { // rules… match /images/{imageId} { // rules… } } } }

Slide 10

Slide 10 text

֊૚ҎԼશͯʹϧʔϧΛద༻ service cloud.firestore { match /databases/{database}/documents { match /{users=**} { // rules… } } } usersͱͦͷԼҐશͯʹϧʔϧΛద༻

Slide 11

Slide 11 text

allowϧʔϧྫ̍ʢςετ༻ʣ service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } } υΩϡϝϯτશମʹৗʹread, writeΛallow͢ΔΑ

Slide 12

Slide 12 text

allowϧʔϧྫ̎ service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth != null; } } } ϩάΠϯ͍ͯ͠ΔͳΒread, writeΛallow͢ΔΑ

Slide 13

Slide 13 text

allowͷछྨ • read ‣ get ‣ list • write ‣ create ‣ update ‣ delete

Slide 14

Slide 14 text

request, resource ม਺ • request ‣ ΫϥΠΞϯτ͔ΒͷϦΫΤετʹؔ ͢Δ৘ใΛࢀরͰ͖Δ • resource ‣ ݱࡏͷDBͷঢ়ଶΛࢀরͰ͖Δ

Slide 15

Slide 15 text

get(), exists() ϝιου • get() ‣ Ҿ਺ʹ༩͑ͨύε͔ΒΦϒδΣΫτ Λऔಘ͢Δ • exists() ‣ Ҿ਺ʹ༩͑ͨύεʹΦϒδΣΫτ͕ ଘࡏ͢Δ͔bool஋Ͱฦ͢

Slide 16

Slide 16 text

in ʹ͍ͭͯ • if x in y ‣ x͕഑ྻyʹؚ·Ε͍ͯΔ͔ΛνΣο Ϋ͢Δ

Slide 17

Slide 17 text

૊Έ߹ΘͤΔͱ͍͍ײ͡ʹͳΔ service cloud.firestore { match /databases/{database}/documents { function getRoom(roomId) { return get(/databases/{database}/documents/rooms/{roomId}); } match /rooms/{roomId} { allow read, update: if request.auth != null && request.auth.uid in getRoom(roomId).data.users; } } } ྫɿϧʔϜϝϯόʔͰ͋Ε͹read, update͕Ͱ͖Δ

Slide 18

Slide 18 text

·ͱΊ

Slide 19

Slide 19 text

·ͱΊ • Firestore͸ϦιʔεຖʹೝՄͷઃఆ͕Ͱ͖Δ • allow, function, request/resourceม਺, get()/ exists()ͳͲΛ૊Έ߹Θͤͯࡉ͔͍ઃఆ͕Մೳ • ద੾ʹϧʔϧΛઃఆͯ͠৘ใΛकΓ·͠ΐ͏