© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
Cloud Firestore
for XXX application
October 27, 2017
Firebase meet up
Chiangmai 2017
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 2
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 3
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 4
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 5
Beta release !!
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 6
Cloud Firestore
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 7
Basic of Firestore
New document database for app
developers
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 8
RDBMS vs Document
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 9
RDBMS vs Document
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 10
RDBMS vs Document
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 11
Basic of Firestore
New document database for app
developers
For mobile and web development
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 12
Basic of Firestore
New document database for app
developers
For mobile and web development
Easily and sync at the global scale
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 13
Key features
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 14
Key features
Documents and collections with powerful
querying
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 15
Key features
Documents and collections with powerful
querying
Offline data access (mobile and web)
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 16
Key features
Documents and collections with powerful
querying
Realtime data sync
Offline data access (mobile and web)
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 17
Key features
Documents and collections with powerful
querying
Realtime data sync
Automatic, multi-region replication
Offline data access (mobile and web)
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 18
Key features
Documents and collections with powerful
querying
Offline data access (mobile and web)
Realtime data sync
Automatic, multi-region replication
Node, Python, Go, Java
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 19
Key features
Integrate with Firebase Platform
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 20
Key features
Integrate with Firebase Platform
Cloud Function and Firebase Authentication
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 21
Replacing
Firebase Realtime Database ?
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 22
No
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 23
Usecase !!
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 24
What’s different with
Cloud Firestore ?
https://firebase.google.com/docs/firestore/rtdb-vs-firestore
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 25
Better query and more data
structure
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 26
Collections
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 27
Subcollections
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 28
All queries are shadow
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 29
Automatic build an index
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 30
Make easy to search across
multiple field
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 31
Queries scale to the size of your
result set
(not the size of your data)
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 32
Pricing model !!
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 33
Realtime database based on
size of data
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 34
Cloud Firestore based on
the number of reads or writes
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 35
What’s your use case ?
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 36
Use both database together
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 37
Create my Collection
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 38
https://www.facebook.com/pg/namtonshousebar
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 39
Beer Document
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 40
Let’s start at Firebase console
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 41
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 42
Beer Collection
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 43
First document with Go To IPA
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 44
Result
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 45
My Beer Application
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 46
$firebase init
$npm install -g firebase-tools
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 47
$firebase open auth
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 48
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 49
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 50
Add Firebase to app
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 51
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 52
For web app
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 53
Manage security rules
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 54
Manage security rules
Everyone can read and write !!
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 55
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 56
Need to update the security rules
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 57
$firebase deploy --only firestore:rules
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 58
$firebase deploy --only firestore:rules
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 59
Manage security rules
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 60
Add new beer
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 61
Add new beer without brewer
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 62
Add new beer without brewer
const db = firebase.firestore();
const beer = {
beerName: this.state.beerName,
alcohol: this.state.alcohol,
price: this.state.price
}
db.collection(“beer").add(beer)
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 63
View data in Firebase console
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 64
Read all beer
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 65
Read all beer
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 66
Read all beer
let allBeer = []
const db = firebase.firestore()

db.collection("beer").get()

.then((querySnapshot) => {

querySnapshot.forEach((doc) => {
allBeer.push(doc.data())
})

})
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 67
Read beer by ID
let allBeer = []
const db = firebase.firestore()

db.collection(“beer").doc("ID")get()

.then((querySnapshot) => {

})
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 68
Delete beer by ID
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 69
Delete beer by ID
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 70
Delete beer by ID
const db = firebase.firestore()
db.collection("beer").doc(`${beerId}`).delete()
.then(function() {
console.log(`${beerId}`)
}).catch(function(error) {
console.error(error);
});
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 71
We need more features
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 72
Ordering data
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 73
Order by name
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 74
Order by name
const db = firebase.firestore()
db.collection("beer")
.orderBy('beerName', 'desc').get()
.then((querySnapshot) => {
})
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 75
Order by name and price
const db = firebase.firestore()

db.collection("beer")
.orderBy('beerName', 'desc')
.orderBy('price', 'asc').get()
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 76
Error !!
Need to add a index !!
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 77
Add new index
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 78
Add new index
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 79
Order by name and price
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 80
Limit number of data
const db = firebase.firestore()

db.collection("beer")
.orderBy('beerName', 'desc')
.orderBy('price', 'asc').limit(2).get()
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 81
Filter data by conditions
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 82
Filter data with where()
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 83
Filter data with where()
const db = firebase.firestore();
db.collection(“beer")
.where("beerName", "==", this.state.searchWord)
.get()
.then((querySnapshot) => {
querySnapshot.forEach((doc) => {
allBeer.push(doc)
})
})
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 84
Full text search
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 85
(Cloud Firestore not support !!)
Full text search
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 86
(need 3-party library)
Full text search
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 87
Structure of data
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 88
Structure of data
Nested data in documents
Subcollections
Root-level collections
https://cloud.google.com/firestore/docs/concepts/structure-data
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 89
Nested data in document
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 90
Subcollections
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 91
Root-level collections
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 92
Let’ s design your data model
(most important)
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 93
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 94
Add brewer in each beer
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 95
Working with Subcollection
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 96
Working with Subcollection
//1. Create beer document
const beer = {
beerName: this.state.beerName,
alcohol: this.state.alcohol,
price: this.state.price
}
db.collection("beer").add(beer)
.then(function(beerDocument) {

//2. Add brewer to beer
const mockBrewery = [
{ name: "Stone" },
{ name: "Thai Local"}
]
beerDocument.collection("brewery")

.add(mockBrewery[id])
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 97
Working with Subcollection
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 98
Working with Subcollection
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 99
And more …
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 100
Secure data
Working with Cloud Function
Working with Transaction & Batching
Sync data
Offline mode
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 101
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 102
Resources
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 103
Demo
https://github.com/up1/demo-cloud-firestore
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 104
Resources
https://codelabs.developers.google.com/
codelabs/firestore-web
https://cloud.google.com/firestore
https://codelabs.developers.google.com/
codelabs/firestore-android/
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 105
Firebase meet up Chiangmai 2017
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 106
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 107

SCK Firestore at CNX

  • 1.
    © 2017 -2018 Siam Chamnankit Company Limited. All rights reserved. Cloud Firestore for XXX application October 27, 2017 Firebase meet up Chiangmai 2017
  • 2.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 2
  • 3.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 3
  • 4.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 4
  • 5.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 5 Beta release !!
  • 6.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 6 Cloud Firestore
  • 7.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 7 Basic of Firestore New document database for app developers
  • 8.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 8 RDBMS vs Document
  • 9.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 9 RDBMS vs Document
  • 10.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 10 RDBMS vs Document
  • 11.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 11 Basic of Firestore New document database for app developers For mobile and web development
  • 12.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 12 Basic of Firestore New document database for app developers For mobile and web development Easily and sync at the global scale
  • 13.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 13 Key features
  • 14.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 14 Key features Documents and collections with powerful querying
  • 15.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 15 Key features Documents and collections with powerful querying Offline data access (mobile and web)
  • 16.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 16 Key features Documents and collections with powerful querying Realtime data sync Offline data access (mobile and web)
  • 17.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 17 Key features Documents and collections with powerful querying Realtime data sync Automatic, multi-region replication Offline data access (mobile and web)
  • 18.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 18 Key features Documents and collections with powerful querying Offline data access (mobile and web) Realtime data sync Automatic, multi-region replication Node, Python, Go, Java
  • 19.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 19 Key features Integrate with Firebase Platform
  • 20.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 20 Key features Integrate with Firebase Platform Cloud Function and Firebase Authentication
  • 21.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 21 Replacing Firebase Realtime Database ?
  • 22.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 22 No
  • 23.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 23 Usecase !!
  • 24.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 24 What’s different with Cloud Firestore ? https://firebase.google.com/docs/firestore/rtdb-vs-firestore
  • 25.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 25 Better query and more data structure
  • 26.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 26 Collections
  • 27.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 27 Subcollections
  • 28.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 28 All queries are shadow
  • 29.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 29 Automatic build an index
  • 30.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 30 Make easy to search across multiple field
  • 31.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 31 Queries scale to the size of your result set (not the size of your data)
  • 32.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 32 Pricing model !!
  • 33.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 33 Realtime database based on size of data
  • 34.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 34 Cloud Firestore based on the number of reads or writes
  • 35.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 35 What’s your use case ?
  • 36.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 36 Use both database together
  • 37.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 37 Create my Collection
  • 38.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 38 https://www.facebook.com/pg/namtonshousebar
  • 39.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 39 Beer Document
  • 40.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 40 Let’s start at Firebase console
  • 41.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 41
  • 42.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 42 Beer Collection
  • 43.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 43 First document with Go To IPA
  • 44.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 44 Result
  • 45.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 45 My Beer Application
  • 46.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 46 $firebase init $npm install -g firebase-tools
  • 47.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 47 $firebase open auth
  • 48.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 48
  • 49.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 49
  • 50.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 50 Add Firebase to app
  • 51.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 51
  • 52.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 52 For web app
  • 53.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 53 Manage security rules
  • 54.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 54 Manage security rules Everyone can read and write !!
  • 55.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 55
  • 56.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 56 Need to update the security rules
  • 57.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 57 $firebase deploy --only firestore:rules
  • 58.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 58 $firebase deploy --only firestore:rules
  • 59.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 59 Manage security rules
  • 60.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 60 Add new beer
  • 61.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 61 Add new beer without brewer
  • 62.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 62 Add new beer without brewer const db = firebase.firestore(); const beer = { beerName: this.state.beerName, alcohol: this.state.alcohol, price: this.state.price } db.collection(“beer").add(beer)
  • 63.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 63 View data in Firebase console
  • 64.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 64 Read all beer
  • 65.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 65 Read all beer
  • 66.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 66 Read all beer let allBeer = [] const db = firebase.firestore()
 db.collection("beer").get()
 .then((querySnapshot) => {
 querySnapshot.forEach((doc) => { allBeer.push(doc.data()) })
 })
  • 67.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 67 Read beer by ID let allBeer = [] const db = firebase.firestore()
 db.collection(“beer").doc("ID")get()
 .then((querySnapshot) => {
 })
  • 68.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 68 Delete beer by ID
  • 69.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 69 Delete beer by ID
  • 70.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 70 Delete beer by ID const db = firebase.firestore() db.collection("beer").doc(`${beerId}`).delete() .then(function() { console.log(`${beerId}`) }).catch(function(error) { console.error(error); });
  • 71.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 71 We need more features
  • 72.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 72 Ordering data
  • 73.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 73 Order by name
  • 74.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 74 Order by name const db = firebase.firestore() db.collection("beer") .orderBy('beerName', 'desc').get() .then((querySnapshot) => { })
  • 75.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 75 Order by name and price const db = firebase.firestore()
 db.collection("beer") .orderBy('beerName', 'desc') .orderBy('price', 'asc').get()
  • 76.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 76 Error !! Need to add a index !!
  • 77.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 77 Add new index
  • 78.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 78 Add new index
  • 79.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 79 Order by name and price
  • 80.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 80 Limit number of data const db = firebase.firestore()
 db.collection("beer") .orderBy('beerName', 'desc') .orderBy('price', 'asc').limit(2).get()
  • 81.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 81 Filter data by conditions
  • 82.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 82 Filter data with where()
  • 83.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 83 Filter data with where() const db = firebase.firestore(); db.collection(“beer") .where("beerName", "==", this.state.searchWord) .get() .then((querySnapshot) => { querySnapshot.forEach((doc) => { allBeer.push(doc) }) })
  • 84.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 84 Full text search
  • 85.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 85 (Cloud Firestore not support !!) Full text search
  • 86.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 86 (need 3-party library) Full text search
  • 87.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 87 Structure of data
  • 88.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 88 Structure of data Nested data in documents Subcollections Root-level collections https://cloud.google.com/firestore/docs/concepts/structure-data
  • 89.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 89 Nested data in document
  • 90.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 90 Subcollections
  • 91.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 91 Root-level collections
  • 92.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 92 Let’ s design your data model (most important)
  • 93.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 93
  • 94.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 94 Add brewer in each beer
  • 95.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 95 Working with Subcollection
  • 96.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 96 Working with Subcollection //1. Create beer document const beer = { beerName: this.state.beerName, alcohol: this.state.alcohol, price: this.state.price } db.collection("beer").add(beer) .then(function(beerDocument) {
 //2. Add brewer to beer const mockBrewery = [ { name: "Stone" }, { name: "Thai Local"} ] beerDocument.collection("brewery")
 .add(mockBrewery[id])
  • 97.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 97 Working with Subcollection
  • 98.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 98 Working with Subcollection
  • 99.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 99 And more …
  • 100.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 100 Secure data Working with Cloud Function Working with Transaction & Batching Sync data Offline mode
  • 101.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 101
  • 102.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 102 Resources
  • 103.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 103 Demo https://github.com/up1/demo-cloud-firestore
  • 104.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 104 Resources https://codelabs.developers.google.com/ codelabs/firestore-web https://cloud.google.com/firestore https://codelabs.developers.google.com/ codelabs/firestore-android/
  • 105.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 105
  • 106.
    Firebase meet upChiangmai 2017 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 106
  • 107.
    © 2017 -2018 Siam Chamnankit Company Limited. All rights reserved. 107