SlideShare a Scribd company logo
1 of 23
Firebase
Anja Gašić
linkedin.com/in/gasicanja/
Moćan alat da brzo
realizuješ svoju ideju
Nikola
Samardžija
linkedin.com/in/nikolasamardzija
5
Kako to izgleda bez Firebase?
Kompleksna arhitektura za manji projekat
- Kreiranje relacione baze
- Pisanje SQL
- Kreiranje REST servisa u Spring, .NET,
- Pisanje gomile slicnog koda za obicne operacije
dodavanje, menjanje, brisanje i citanje iz baze
- Deploy na server svega toga
- Plaćanje servera
Sve na jednom mestu
- skup alata za izgradnju,
poboljšanje i razvoj vaše
aplikacije
- kreiran od strane Google-a
- njegove alate koriste mnogi
startapi, ali i veći projekti
Šta je Firebase?
- Lako prijavljivanje i registracija
- Čuvanje slika jaja i šablona
- Baza podataka sa obaveštavanjem u realnom
vremenu
- Analitika i crashevi
- Deljenje linkova između korisnika
- Troškovi samo 3$ i lako skaliranje na veći broj
korisnika
Šta to može da se napravi?
20 hiljada korisnika za 12 dana.
Ovo je grupa alata u kojoj ćemo pričati kako možete u
potpunosti da zamenite sve što vam je potrebno sa
backend strane
Build alati
Razvoj backend infrastukture
Firebase Authentication
- Standardna registracija preko
imejla i šifre.
- Povezivanje sa već
postojećim nalozima kao što
su google, facebook, apple i
drugi.
- Firebase.auth.currentUser
Firebase Authentication
- FirebaseUI biblioteka
- Dostupna za Android, iOS i
veb
Firestore database
- Fleksibilna, skalabilna i nerelaciona baza podataka
- Offline mode
- Baza se sastoji od kolekcija i dokumenata.
- Kolekciju mozemo da uporedimo sa tabelom u relacionoj bazi.
- U našem slučaju bi to bili podaci o svim jajima.
- Svaka kolekcija u sebi ima dokument, koji zapravo predstavlja jedno jaje.
NoSQL baza podataka
Firestore database
Rad nad podacima
FirebaseFirestore.getInstance()
.collection("eggs")
.orderBy("xp", Query.Direction.DESCENDING)
.limit(10)
.whereEqualTo("previousOwner", "")
.whereEqualTo("competing", true)
.get()
.await()
U par linija
Povlačenje 10 najboljih igrača koji nisu izgubili jaje, a žele da se
takmiče
FirebaseFirestore.getInstance()
.collection(Const.COLLECTION_GAMES)
.add(
Game(
host = Player(
egg = egg,
name = fullName,
id = userId
)
)
).await()
Kreiranje nove igre
Game dokument
FirebaseFirestore.getInstance()
.collection(Const.COLLECTION_GAMES)
.document(gameId)
.addSnapshotListener { snapshot, e ->
gameUpdated(e, snapshot)
}
val matchString = when (matchNo) {
1 -> "firstMatch"
2 -> "secondMatch"
else -> "thirdMatch"
}
val player = if (isHost) "hostTime" else "guestTime"
gameRef?.update("$matchString.$player", result).await()
Izmena polja u dokumentu
Osluškivanje izmena
Firebase storage
U njega možemo da čuvamo sve
podatke koji su nam potrebni.
Za Egg Smash smo koristili
Storage kako bismo čuvali slike
jaja, ali i šablone koje smo
ručno dodali kroz konzolu
Čuvanje fajlova
Glide.with(view.context)
.load(FirebaseStorage.getInstance()
.reference
.child(egg.image))
.into(view.iv_egg)
Ostali alati za kreiranje
Uz firebase lako možemo da imamo hosting naše web aplikacije tako da ono
što napravite za kratko vreme objavite da bude svima dostupno.
Cloud funkcije možete da koristite tako što ćete u javascript otkucati
endpoint i pozvati endpoint ili podesiti da se on automatski trigeruje svaki
put kada se izmeni određena kolekcija.
Takođe tu su i Machine learning algoritmi koje možete iskoristiti za vašu
ideju.
Hosting, Cloud functions i Machine learning
Ovo je grupa alata koja će vam pomoći da šaljete
aplikaciju testerima, pratite potrebe vaših korisnika i
otkrivate rane bagove.
Analitika i monitoring
Poboljšavanje kvaliteta aplikacije
App distribution
- Omogućava lako testiranje tako što se na brz način aplikacije šalju
testerima pre objavljivanja na prodavnice.
- Preko mejla ili preko linka sa kojim neko može da postane tester i skine
aplikaciju
- Na lak način mogu da se prate poslate verzije, release notes i grupe
testera
Deljenje aplikacija sa testerima
- Svaka aplikacija ima bagove, a vi želite da bude prvi koji će saznati o njima.
- Firebase Crashlytics vam omogućava da odmah vidite sve detalje gde je
pukla aplikacija.
- Dobiješ stacktrace, vreme i koji uređaj
Crashlytics
Praćenje bagova
- Uz analitiku imate
mogućnost da pratite
mnoge parametre o
vašoj aplikaciji i tako da
je unapređujete.
- Implementira se
jednostavno, a podaci
su dostupni odmah
Analitika
Ovo je grupa alata koja će vam pomoći da dođete do
što više korisnika i da ih zadržite u vašoj aplikaciji.
Rast aplikacije
Prikupiti što više korisnika
Push notifikacije (FCM)
Ukoliko želite da korisnicima stižu notifikacije Firebase vam i to dosta
olakšava.
Mi smo to iskoristili tako što korisnik dobije notifikaciju čim ga neko
izazove na borbu, pa protivnik može odmah da se priključi i da odigraju
partiju
Slanje obaveštenja korisnicima
Potrebno vam je da se pročuje za vašu
aplikaciju. Ovaj alat vam omogućava da
naprivate linkove koji će moći da odvedu
korisnika da instalira aplikaciju ili ukoliko je
već ima da mu otvori specifičan ekran
unutar vaše aplikacije.
Mi smo to iskoristili tako što napravimo
novu borbu, a protivnik klikom na link
može da se priključi toj borbi.
Firebase Dynamic links
Slanje linkova do aplikacije
Kada je standardni pristup bolji?
Kada ideja poraste
Onog momenta kada potvrdite
svoju ideju i želite da proširite
projekat
- Zahteva puno relacija između
entiteta
- Poslovna logika na jednom
mestu
- Skalabilnost poslovne logike
Android Chat u 10 koraka - Codelab
Fireship Youtube kanal
Firebase zvanični Youtube kanal
Zvanična uputstva za Firebase
Prvi koraci za Android programiranje
Github - Red Voznje Novi Sad Android i iOS
Sledeći koraci
Tutorijali, dokumentacija, prva aplikacija
Hvala na pažnji!
Anja Gašić
linkedin.com/in/gasicanja/
Nikola
Samardžija
linkedin.com/in/nikolasamardzija
5

More Related Content

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Firebase

  • 1. Firebase Anja Gašić linkedin.com/in/gasicanja/ Moćan alat da brzo realizuješ svoju ideju Nikola Samardžija linkedin.com/in/nikolasamardzija 5
  • 2. Kako to izgleda bez Firebase? Kompleksna arhitektura za manji projekat - Kreiranje relacione baze - Pisanje SQL - Kreiranje REST servisa u Spring, .NET, - Pisanje gomile slicnog koda za obicne operacije dodavanje, menjanje, brisanje i citanje iz baze - Deploy na server svega toga - Plaćanje servera
  • 3. Sve na jednom mestu - skup alata za izgradnju, poboljšanje i razvoj vaše aplikacije - kreiran od strane Google-a - njegove alate koriste mnogi startapi, ali i veći projekti Šta je Firebase?
  • 4. - Lako prijavljivanje i registracija - Čuvanje slika jaja i šablona - Baza podataka sa obaveštavanjem u realnom vremenu - Analitika i crashevi - Deljenje linkova između korisnika - Troškovi samo 3$ i lako skaliranje na veći broj korisnika Šta to može da se napravi? 20 hiljada korisnika za 12 dana.
  • 5. Ovo je grupa alata u kojoj ćemo pričati kako možete u potpunosti da zamenite sve što vam je potrebno sa backend strane Build alati Razvoj backend infrastukture
  • 6. Firebase Authentication - Standardna registracija preko imejla i šifre. - Povezivanje sa već postojećim nalozima kao što su google, facebook, apple i drugi. - Firebase.auth.currentUser
  • 7. Firebase Authentication - FirebaseUI biblioteka - Dostupna za Android, iOS i veb
  • 8. Firestore database - Fleksibilna, skalabilna i nerelaciona baza podataka - Offline mode - Baza se sastoji od kolekcija i dokumenata. - Kolekciju mozemo da uporedimo sa tabelom u relacionoj bazi. - U našem slučaju bi to bili podaci o svim jajima. - Svaka kolekcija u sebi ima dokument, koji zapravo predstavlja jedno jaje. NoSQL baza podataka
  • 10. Rad nad podacima FirebaseFirestore.getInstance() .collection("eggs") .orderBy("xp", Query.Direction.DESCENDING) .limit(10) .whereEqualTo("previousOwner", "") .whereEqualTo("competing", true) .get() .await() U par linija Povlačenje 10 najboljih igrača koji nisu izgubili jaje, a žele da se takmiče FirebaseFirestore.getInstance() .collection(Const.COLLECTION_GAMES) .add( Game( host = Player( egg = egg, name = fullName, id = userId ) ) ).await() Kreiranje nove igre
  • 11. Game dokument FirebaseFirestore.getInstance() .collection(Const.COLLECTION_GAMES) .document(gameId) .addSnapshotListener { snapshot, e -> gameUpdated(e, snapshot) } val matchString = when (matchNo) { 1 -> "firstMatch" 2 -> "secondMatch" else -> "thirdMatch" } val player = if (isHost) "hostTime" else "guestTime" gameRef?.update("$matchString.$player", result).await() Izmena polja u dokumentu Osluškivanje izmena
  • 12. Firebase storage U njega možemo da čuvamo sve podatke koji su nam potrebni. Za Egg Smash smo koristili Storage kako bismo čuvali slike jaja, ali i šablone koje smo ručno dodali kroz konzolu Čuvanje fajlova Glide.with(view.context) .load(FirebaseStorage.getInstance() .reference .child(egg.image)) .into(view.iv_egg)
  • 13. Ostali alati za kreiranje Uz firebase lako možemo da imamo hosting naše web aplikacije tako da ono što napravite za kratko vreme objavite da bude svima dostupno. Cloud funkcije možete da koristite tako što ćete u javascript otkucati endpoint i pozvati endpoint ili podesiti da se on automatski trigeruje svaki put kada se izmeni određena kolekcija. Takođe tu su i Machine learning algoritmi koje možete iskoristiti za vašu ideju. Hosting, Cloud functions i Machine learning
  • 14. Ovo je grupa alata koja će vam pomoći da šaljete aplikaciju testerima, pratite potrebe vaših korisnika i otkrivate rane bagove. Analitika i monitoring Poboljšavanje kvaliteta aplikacije
  • 15. App distribution - Omogućava lako testiranje tako što se na brz način aplikacije šalju testerima pre objavljivanja na prodavnice. - Preko mejla ili preko linka sa kojim neko može da postane tester i skine aplikaciju - Na lak način mogu da se prate poslate verzije, release notes i grupe testera Deljenje aplikacija sa testerima
  • 16. - Svaka aplikacija ima bagove, a vi želite da bude prvi koji će saznati o njima. - Firebase Crashlytics vam omogućava da odmah vidite sve detalje gde je pukla aplikacija. - Dobiješ stacktrace, vreme i koji uređaj Crashlytics Praćenje bagova
  • 17. - Uz analitiku imate mogućnost da pratite mnoge parametre o vašoj aplikaciji i tako da je unapređujete. - Implementira se jednostavno, a podaci su dostupni odmah Analitika
  • 18. Ovo je grupa alata koja će vam pomoći da dođete do što više korisnika i da ih zadržite u vašoj aplikaciji. Rast aplikacije Prikupiti što više korisnika
  • 19. Push notifikacije (FCM) Ukoliko želite da korisnicima stižu notifikacije Firebase vam i to dosta olakšava. Mi smo to iskoristili tako što korisnik dobije notifikaciju čim ga neko izazove na borbu, pa protivnik može odmah da se priključi i da odigraju partiju Slanje obaveštenja korisnicima
  • 20. Potrebno vam je da se pročuje za vašu aplikaciju. Ovaj alat vam omogućava da naprivate linkove koji će moći da odvedu korisnika da instalira aplikaciju ili ukoliko je već ima da mu otvori specifičan ekran unutar vaše aplikacije. Mi smo to iskoristili tako što napravimo novu borbu, a protivnik klikom na link može da se priključi toj borbi. Firebase Dynamic links Slanje linkova do aplikacije
  • 21. Kada je standardni pristup bolji? Kada ideja poraste Onog momenta kada potvrdite svoju ideju i želite da proširite projekat - Zahteva puno relacija između entiteta - Poslovna logika na jednom mestu - Skalabilnost poslovne logike
  • 22. Android Chat u 10 koraka - Codelab Fireship Youtube kanal Firebase zvanični Youtube kanal Zvanična uputstva za Firebase Prvi koraci za Android programiranje Github - Red Voznje Novi Sad Android i iOS Sledeći koraci Tutorijali, dokumentacija, prva aplikacija
  • 23. Hvala na pažnji! Anja Gašić linkedin.com/in/gasicanja/ Nikola Samardžija linkedin.com/in/nikolasamardzija 5