Slide 1

Slide 1 text

Firebase × Flutter × Alglia PORT Firebase × Alglia Shogo yamada

Slide 2

Slide 2 text

ࣗݾ঺հ Nama: Shogo Yamada Job: AndroidΤϯδχΞ Twitter: @yshogo87 Facebook: ࢁాঘޗ

Slide 3

Slide 3 text

໨࣍ ɾAlgoliaͷ࢖༻৔໘ ɾAlgoliaͷ࢖͍ํ ɾAlgoliaΛFlutter͔Β࢖͏ ɾAlgolia͔ΒσʔλΛऔಘ͢ΔϝϦο τ/σϝϦοτ

Slide 4

Slide 4 text

Algoliaͷ࢖༻৔໘

Slide 5

Slide 5 text

Algoliaͷ࢖༻৔໘

Slide 6

Slide 6 text

Algoliaͷ࢖༻৔໘ UserNameͰݕࡧʁ UserIDͰݕࡧʁ ը૾ͷΧςΰϦͰݕࡧʁ

Slide 7

Slide 7 text

Algoliaͷ࢖༻৔໘ where userName like hogehoge OR userId like hogehoge OR categoryName like hogehoge

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

ͦ͜ͰAlgolia

Slide 10

Slide 10 text

Algoliaͷ࢖༻৔໘ ɾuser_id ɾuser_name ɾintroduction ͳͲෳ਺ͷଐੑͷจࣈྻʹରͯ͠ݕࡧΛ ౤͛Δ͜ͱ͕Ͱ͖Δ

Slide 11

Slide 11 text

Algoliaͷ࢖༻৔໘

Slide 12

Slide 12 text

Algolia࢖͍ํ

Slide 13

Slide 13 text

Algoliaͷ࢖͍ํ ɾAlgoliaʹαΠϯΞοϓ ɾαΠϯΞοϓޙʹindexΛ࡞੒͢Δ

Slide 14

Slide 14 text

Algoliaͷ࢖͍ํ ɾCloud FunctionsͷηοτΞοϓΛߦ͏ npm install algoliasearch

Slide 15

Slide 15 text

Algoliaͷ࢖͍ํ ɾFirestoreͷτϦΨʔΛར༻ͯ͠Algoliaʹ σʔλΛ౤͛Δ

Slide 16

Slide 16 text

Algoliaͷ࢖͍ํ

Slide 17

Slide 17 text

Algoliaͷ࢖͍ํ ɾΫϥΠΞϯτଆ͔ΒAlgolia SDKΛ࢖ͬͯ Algoliaʹऔಘ͠ʹ͍͘

Slide 18

Slide 18 text

Algoliaͷ࢖͍ํ Firestoreʹอଘ τϦΨʔ SDKͰσʔλΛ౤͛Δ ΫΤϦ

Slide 19

Slide 19 text

Flutter͔ΒAlgoliaΛ࢖͏

Slide 20

Slide 20 text

Flutter͔ΒAlgoliaΛ࢖͏

Slide 21

Slide 21 text

Flutter͔ΒAlgoliaΛ࢖͏

Slide 22

Slide 22 text

Algolia͔ΒσʔλΛऔಘ͢Δ ϝϦοτ/σϝϦοτ

Slide 23

Slide 23 text

͔͜͜Β͸ࣗ෼ݸਓͷҙݟͳ ͷͰશͯͷࣄ৅ʹ౰ͯ͸·Δ ͱ͸ݶΒͳ͍Ͱ͢

Slide 24

Slide 24 text

Algolia͔ΒσʔλΛऔಘ͢Δϝ Ϧοτ/σϝϦοτ ϝϦοτ ɾFirestoreʹ͸ͳ͍ΫΤϦ͕࢖͑ΔΑ͏ʹͳ Δ (likeɺfilterɺෳ߹ΫΤϦɺetc….) ɾϥϯΩϯάઃܭָ͕

Slide 25

Slide 25 text

Algolia͔ΒσʔλΛऔಘ͢Δϝ Ϧοτ/σϝϦοτ ෳ߹ΫΤϦ

Slide 26

Slide 26 text

Algolia͔ΒσʔλΛऔಘ͢Δϝ Ϧοτ/σϝϦοτ ϥϯΩϯά

Slide 27

Slide 27 text

Algolia͔ΒσʔλΛऔಘ͢Δϝ Ϧοτ/σϝϦοτ σϝϦοτ ɾFirestoreͷϩʔΧϧΩϟογϡػೳ͕࢖͑ ͳ͍

Slide 28

Slide 28 text

Algolia͔ΒσʔλΛऔಘ͢Δϝ Ϧοτ/σϝϦοτ σϝϦοτ ɾFirestoreͷϩʔΧϧΩϟογϡػೳ͕࢖͑ ͳ͍ ͜Ε݁ߏΫϦςΟΧϧ

Slide 29

Slide 29 text

FirestoreΛ৑௕Խ ͯ͠औಘ͢Δ͔ Algolia͔ΒΫΤϦ͢Δ͔

Slide 30

Slide 30 text

ྫΛ͋͛ͯઆ໌͠·͢ɻ

Slide 31

Slide 31 text

Firestoreͷ৔߹

Slide 32

Slide 32 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Firestoreͷ৔߹ ϢʔβʔA(userID: id1)͕πΠʔτ͢Δͱ user/id1/posts/{postsId}/[data]

Slide 33

Slide 33 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Firestoreͷ৔߹ ϢʔβʔAΛϑΥϩʔ͍ͯ͠ΔϢʔβʔશһͷλΠ ϜϥΠϯʹίϐʔ͢Δɻ user/{followerId1}/timeline/{postsId}/[data] user/{followerId2}/timeline/{postsId}/[data] user/{followerId3}/timeline/{postsId}/[data] ɿ ϢʔβʔA(userID: id1)͕πΠʔτ͢Δͱ user/id1/posts/{postsId}/[data]

Slide 34

Slide 34 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Firestoreͷ৔߹ ͋ͱ͸ϑΥϩʔ͍ͯ͠ΔϢʔβʔ͸ίϐʔ͞Εͨ σʔλΛࢀর͢Δ user/{followerId1}/timeline/{postsId}/[data]

Slide 35

Slide 35 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Firestoreͷ৔߹ ϝϦοτ ɾಡΈऔΓ͕؆୯(ίϐʔ͞ΕͨσʔλΛࢀর͢ Δ͚ͩ ɾFirestoreͷϩʔΧϧΩϟογϡ͕࢖͑Δ σϝϦοτ ɾσʔλΛ৑௕Խ͍ͯ͘͜͠ͱͷ؅ཧ΋ίετ ΋͔͔Δ

Slide 36

Slide 36 text

Algoliaͷ৔߹

Slide 37

Slide 37 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Algoliaͷ৔߹ ϢʔβʔA(userID: id1)͕πΠʔτ͢Δͱ user/id1/posts/{postsId}/[data]

Slide 38

Slide 38 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Algoliaͷ৔߹ ϢʔβʔA(userID: id1)͕πΠʔτ͢Δͱ user/id1/posts/{postsId}/[data] τϦΨʔͱͯ͠Algoliaʹσʔλ౤͛Δɻ

Slide 39

Slide 39 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Algoliaͷ৔߹ AlgoliaʹΫΤϦ͢Δ

Slide 40

Slide 40 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ Algoliaͷ৔߹ ϝϦοτ ɾσʔλΛ৑௕Խ͍ͯ͘͠ඞཁ͕ͳ͍ͷͰ؅ཧ ͕ϥΫ ɾFirestoreʹൺ΂ͯͬͪ͜ͷ΄͏͕ӡ༻අ͕҆ ͘ͳΔ৔߹΋͋Δ σϝϦοτ ɾFirestoreͷϩʔΧϧΩϟογϡ͕࢖͑ͳ͍

Slide 41

Slide 41 text

TwitterͷλΠϜϥΠϯͷΑ͏ͳػೳΛ࣮૷͢Δͱ͖ ݁ՌͲͬͪΛ࢖͏΂͖͔͸ʮcase by caseʯ ݁࿦ ɾσʔλͷࢀর͕ϥΫʹͳΔͷ͸ -> Firestore ɾσʔλͷߋ৽͕ϥΫʹͳΔͷ͸ -> Algolia

Slide 42

Slide 42 text

ࢀরΛͱΔ͔ ߋ৽ΛͱΔ͔

Slide 43

Slide 43 text

ͪͳΈʹɺɺɺ ࣗ෼͕ࠓ࡞ͬͯΔSNSαʔϏε͸FirestoreͰλΠϜ ϥΠΛ࡞͍ͬͯ·͢ɻ ཧ༝ ɾFirestoreͷϩʔΧϧΩϟογϡΛ࢖͍͔ͨͬͨ ɾ࢖༻্Ұఆͷ࣌ؒͰλΠϜϥΠϯͷσʔλ͕ফ͑ ΔͷͰߋ৽ճ਺͸ݶఆ͞Ε͍ͯΔ

Slide 44

Slide 44 text

Ͱ͕͢ɺɺɺ ݕࡧܥ͸͘͢͝ศརͳͷͰɺFirestoreͱAlgoliaͷ ૊Έ߹Θͤ͸ඞਢͱ͍ͬͯ΋͍͍͔ͱࢥ͍·͢ɻ ❤

Slide 45

Slide 45 text

Ҏ্Ͱ͢ɻ ࠙਌ձͰ͓࿩͠͠·͠ΐ ͏ʂʂ