Slide 1

Slide 1 text

Firebase data structure and its characteristics nori Jun 2017 @1amageek Hello. #Otemachi Firebase #2 Thank you Yahoo Japan

Slide 2

Slide 2 text

About 1amageek System Device Technology LSI design engineer iOS engineer iOS engineer 2017.5 ~ 2015.10 ~ 2009.4 ~ Bio

Slide 3

Slide 3 text

Bleu Salada OSS Library Bluetooth Library Firebase Library https://github.com/1amageek AssemblyLine Multitask Library

Slide 4

Slide 4 text

Goal

Slide 5

Slide 5 text

Goal Current Project

Slide 6

Slide 6 text

Goal

Slide 7

Slide 7 text

Goal Hello! New Project

Slide 8

Slide 8 text

Firebase data structure and its characteristics

Slide 9

Slide 9 text

is NoSQL

Slide 10

Slide 10 text

UI Atomicity Migration Basically Record Scheme Relationship Durability Cloud Isolation Partition-tolerance Cache Transaction

Slide 11

Slide 11 text

≒ RDB

Slide 12

Slide 12 text

≒ RDB ❌

Slide 13

Slide 13 text

CAP theorem Consistency Availability Partition-tolerance Մ༻ੑ Ұ؏ੑ ෼அ଱ੑ

Slide 14

Slide 14 text

Relational database 1. Consistency 2. Availability Bank Stable Network Firebase Realtime Databaseͱ͸ͳΜͳͷ͔ʁ CAP theorem

Slide 15

Slide 15 text

Mobile

Slide 16

Slide 16 text

Mobile 1. Unstable network 2. Limited resources 3. Development speed

Slide 17

Slide 17 text

Mobile RDB X Mismatch

Slide 18

Slide 18 text

Firebase realtime database Unstable Network 1. Partition-tolerance 2. Availability CAP theorem

Slide 19

Slide 19 text

Mobile Firebase X Cool

Slide 20

Slide 20 text

DEMO

Slide 21

Slide 21 text

Feed Feed Feed Feed Sample App User Feed Feed Feed Feed Feed Photo Photo Photo Photo Photo

Slide 22

Slide 22 text

How to Design Firebase realtime database 1. Scheme less 2. Structure 3. Client side join 4. Denormalization

Slide 23

Slide 23 text

Some NoSQLs provide soft scheme functions. Mixed Nested Model Model Scheme less 1. Type safe 2. Validation

Slide 24

Slide 24 text

1. Flat structure can flexibly respond to changes Flat Nested Model Structure 2. Nested structure can constitute simple security Model Model Model

Slide 25

Slide 25 text

Structure Room { room: { room_00: { message_00: true, message_01: true } }, message: { message_00: { text: "hollo" }, message_01: { text: "hollo" } } } { room: { room_00: { message_00: { text: "hollo" }, message_01: { text: "hollo" } } } } Flat Nested 1. Flat structure can flexibly respond to changes 2. Nested structure can constitute simple security

Slide 26

Slide 26 text

Client side join 1. Improve development speed 2. Reduce unnecessary communication

Slide 27

Slide 27 text

Client side join User Information Main Contents Reaction count

Slide 28

Slide 28 text

Client side join { id: "000000", user: { id: "user_00", name: "1amageek", thumbnailURL: "https://**.jpg" followerUserIDs: ["user_01"], followeeUserIDs: ["user_02"], }, content: { id: "content_00", text: "Hello", imageURL: "https://**.jpg" }, retweetUserIDs: ["user_01", "user_02"], commentUserIDs: ["user_01", "user_02"], likeUserIDs: ["user_01", "user_02"], }

Slide 29

Slide 29 text

Client side join { id: "000000", userID: "user_00", contentID: "content_00", retweetUserIDs: ["user_01", "user_02"], commentUserIDs: ["user_01", "user_02"], likeUserIDs: ["user_01", "user_02"], } user: { id: "user_00", name: "1amageek", thumbnailURL: "https://**.jpg" followerUserIDs: ["user_01"], followeeUserIDs: ["user_02"], } content: { id: "content_00", text: "Hello", imageURL: "https://**.jpg" }

Slide 30

Slide 30 text

Denormalization RDB Firebase Model Normalization Denormalization 1. Denormalization simplifies queries 2. Improve performance 3. Volume increases

Slide 31

Slide 31 text

Summary 1. ͏·͍ 2. ΍͍͢ 3. ͸΍͍

Slide 32

Slide 32 text

Ads PXL Your photos will be born again as a wonderful art. This photo collage is what makes you feel more happy and pleased. Let's share the pixel art to all over the world. $0.99

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Thank you )