Cloud Firestore Data Modeling (Google I/O'19)

Ғылым және технология

So, you're building your first app using Cloud Firestore, and these NoSQL databases are still new to you. How can you set up your data in Cloud Firestore so that you can a) Perform all the queries you want, while b) Keep everything running quickly, and c) Not spend too much money? Let's find out together by looking at some common use-cases and app types, and see how to implement these on Cloud Firestore.
Watch more #io19 here:
Firebase at Google I/O 2019 Playlist → goo.gle/2GSFVqN
Google I/O 2019 All Sessions Playlist → goo.gle/io19allsessions
Learn more on the I/O Website → google.com/io
Subscribe to the Firebase Channel → goo.gle/Firebase
Get started at → firebase.google.com/
Speaker(s): Todd Kerpelman
T1165A event: Google I/O 2019; re_ty: Publish; product: Cloud - Databases - Firestore; fullname: Todd Kerpelman;

Пікірлер: 190

  • @f4xxf4xx
    @f4xxf4xx5 жыл бұрын

    This guy is the best teacher. Solid presentation

  • @tilakmadichettitheappdeveloper

    @tilakmadichettitheappdeveloper

    4 жыл бұрын

    hell yeah dude ! This guy can also probably explain definite integration to 11yr olds

  • @anonymosranger4759

    @anonymosranger4759

    3 жыл бұрын

    Agree!

  • @SusanthCom

    @SusanthCom

    3 жыл бұрын

    True ❤️❤️❤️

  • @DodaGarcia

    @DodaGarcia

    2 жыл бұрын

    He's so funny and explains really well

  • @marthasolis2281

    @marthasolis2281

    2 жыл бұрын

    @@tilakmadichettitheappdeveloper no

  • @guillempuche
    @guillempuche5 жыл бұрын

    Data modeling rules (according to the presentation): 1. Documents have limits (size, field indexes, operations at the same time…) 2. You can only fetch documents (not specific fields for each document) 3. Billing is mostly based on the number of documents you touch 4. Queries search for indexed fields across a collection

  • @valdineiferreira4814

    @valdineiferreira4814

    3 жыл бұрын

    Data modeling rules (according to the presentation): 1. 16:05 Documents have limits (size, field indexes, operations at the same time…) 2. 18:29 You can only fetch documents (not specific fields for each document) 3. 20:44 Billing is mostly based on the number of documents you touch 4. 24:11 Queries search for indexed fields across a collection

  • @the1yearexperiment
    @the1yearexperiment Жыл бұрын

    This talk is so good. He begins with the exact "emotional" state where probably many are in, not wanting to mess things up for the future but not yet having the most extensive experience in the scale-up side of things. Discussing approaches and questions like denormalization or storing data in larger documents vs. sub-collections from this point of view is super helpful and something mostly not found in documentation

  • @Firebase

    @Firebase

    Жыл бұрын

    Thank you so much for your kind message of support 🙂

  • @GarethHall
    @GarethHall5 жыл бұрын

    This was the best IO talk I saw - you're an excellent presenter Todd!

  • @KristianDamian
    @KristianDamian3 жыл бұрын

    The API analogy it's so clever, blow my mind and make me understand the NoSql idea immediately

  • @broken_arrow1813
    @broken_arrow18133 жыл бұрын

    Todd is great! I can listen to him present for a whole day. The audience doesn't look enthused though, even with GoT references!

  • @davidn7026
    @davidn70265 жыл бұрын

    I like that you explained the tradeoffs very clearly. It's a realtime db after all, and some basic features we expect don't work the way we think it they should. However, there should be guides that show us how to work around these basic features we can't have (reference, ORs, etc.)

  • @raymondmichael4987
    @raymondmichael49874 жыл бұрын

    "If didn't like this, my name is (not Todd) and I was talking about android.." 🤣🤣🤣🤣 That made me laugh loudly. Great presentation and I picked a lot, it's like developing an app from scratch to end in 40.5 minutes. Greetings from Tanzania 🇹🇿

  • @dugtrioramen
    @dugtrioramen Жыл бұрын

    I've been looking at so many tutorials and videos, and this is easily the best one. He directly answers several questions I might have as soon as news things are brought up, and I finally feel like I have a solid understanding of how I should go about this

  • @adarsh_hatwar
    @adarsh_hatwar5 жыл бұрын

    Building a product is one thing but providing support and taking it to the next level is a whole new story. Firestore lacks basic features like support for IN/OR queries, automated backups etc. But people like Todd make things very simple and that is such a life saver as information is organized and comes from a trusted source. Thanks Todd for making this possible :)

  • @bunnihilator
    @bunnihilator3 жыл бұрын

    Thanks, this is the 1st video everyone coming in to firebase should watch. Really a big thank you

  • @postfixnotation9829
    @postfixnotation98294 жыл бұрын

    Todd is an extremely good speaker! All of his Firebase Firestore videos are amazing. Thx!

  • @LucasMDias
    @LucasMDias5 жыл бұрын

    I do care about my fish's birthday.

  • @hunterheston

    @hunterheston

    4 жыл бұрын

    @@ToddKerpelmanCorp how dare you, sir

  • @asafmazon7

    @asafmazon7

    4 жыл бұрын

    But nobody does

  • @IAmSamuelCharpentier

    @IAmSamuelCharpentier

    4 жыл бұрын

    I beleive it would be a hatchday

  • @leeboyin945

    @leeboyin945

    3 жыл бұрын

    lol

  • @jkojkojkojk

    @jkojkojkojk

    3 жыл бұрын

    It's been a year. I think he forgot his fish's birthday

  • @louisconstant8214
    @louisconstant8214 Жыл бұрын

    As a developer with a SQL background now developing my first app with Firestore and NoSQL this was the exact talk I needed to watch. It's all clicking now.

  • @donathmm3881
    @donathmm38815 жыл бұрын

    This guy knows what he's doing ! Keep going 🤘🤘

  • @404-HANDLE_NOT_FOUND
    @404-HANDLE_NOT_FOUND5 жыл бұрын

    A very helpful introduction for us long in the tooth SQL based types! Thank you.

  • @soumitripattnaik
    @soumitripattnaik3 жыл бұрын

    Videos like this tells me that, the best things in the world are free of cost.

  • @grzegorzgumieniak6460
    @grzegorzgumieniak64604 жыл бұрын

    I'm really surprised how comfy is listening Todd and learning new stuff. This is exactly how good teacher should look! 😃

  • @marcelvarela9058
    @marcelvarela90583 жыл бұрын

    This is a presentation that must be seen by every developer who want to use Firebase Cloud Firestore. It should be recommended by all tutorials and courses out there!

  • @vaishankur
    @vaishankur5 жыл бұрын

    Considering using firebase despite everyone advising against it, because of this guy Todd :)

  • @JSANL
    @JSANL5 жыл бұрын

    Collection Group Queries! Finally🙏

  • @DodaGarcia
    @DodaGarcia Жыл бұрын

    Todd is so fun to watch! He joked about it in the talk but he really *does* make a talk about database structures sound exciting.

  • @mohamedhussainsh7913
    @mohamedhussainsh79133 жыл бұрын

    very crisp talk and he touched most important use cases we may face when we implements firestore.

  • @kevinjacyna7323
    @kevinjacyna73235 жыл бұрын

    Thank you for the crystal clear presentation!

  • @82invisinle82
    @82invisinle825 жыл бұрын

    Great talk, tells a lot about the possible scenarios and how we may handle with them.

  • @AkshaySood1
    @AkshaySood13 жыл бұрын

    Nice job Ted! Thank you for being such an awesome presenter/teacher 👍

  • @Squad2ND
    @Squad2ND2 жыл бұрын

    Zombies in the Resident Evil games are more alive than this crowd, however I can tell you guys that I laughed, learned and I'm psyched up while watching this. Awesome job!

  • @2yaya123
    @2yaya1233 жыл бұрын

    Amazing presentation! I feel like I really understand how Firebase data modeling works and the pros and cons of NoSQL databases after watching this video.

  • @Firebase

    @Firebase

    3 жыл бұрын

    Great to hear!

  • @ImpactAICANADA
    @ImpactAICANADA5 жыл бұрын

    Amazing presentation. I love how consumable this information is. This crowd isn't very lively!

  • @tommytower47
    @tommytower473 жыл бұрын

    This was really good. The topic that was talked about last, was exactly the problem I was facing. Thank you for the solution!

  • @verryondrums
    @verryondrums3 жыл бұрын

    Awesome talk! One of my all time favorite presenters!

  • @locusm
    @locusm4 жыл бұрын

    For explaining complex concepts Todd is the G.O.A.T.

  • @SamGerrans
    @SamGerrans Жыл бұрын

    It's great to watch someone who is this good at his job!

  • @DeependraSolanky
    @DeependraSolanky4 жыл бұрын

    Very good insights in such short time. Lot of things to unlearn for somebody coming from long experience in RDBMS world.

  • @beside5915
    @beside59154 жыл бұрын

    This is my best lecture of the firestore

  • @ValAllenSamonte
    @ValAllenSamonte5 жыл бұрын

    this is very helpful, thanks Todd!

  • @AtomicCodeX
    @AtomicCodeX Жыл бұрын

    This guy made a really funny Game of Thrones joke, and everyone in the audience had a bloody straight face

  • @kaibe5241
    @kaibe5241 Жыл бұрын

    Todd was excellent. Helped me nerd out on Firestore :D

  • @glynvilesatago3441
    @glynvilesatago34415 жыл бұрын

    This guy really explains very well, cracks joke from time to time and the crowd just doesn't get it. :D :D :D

  • @iamsurajgiri

    @iamsurajgiri

    4 жыл бұрын

    No, actually they get it. Its just the mic is centred to him

  • @anandakumarsanthinathan4740
    @anandakumarsanthinathan47402 жыл бұрын

    Fantastic. Brilliant presentation. Covered everything one may want to know.

  • @Firebase

    @Firebase

    2 жыл бұрын

    Glad you enjoyed it!

  • @andrewerdle
    @andrewerdle4 жыл бұрын

    This really helped. Thank Todd.

  • @fabrizziocht
    @fabrizziocht4 жыл бұрын

    Fantastic explanation, thank you very much for share your knowledge

  • @troybailey175
    @troybailey1754 жыл бұрын

    Extremely helpful, thank you!

  • @darshans1190
    @darshans11903 жыл бұрын

    such a nice presentation. got to learn a lot of things !!

  • @VitorLucasOFICIAL
    @VitorLucasOFICIAL3 жыл бұрын

    Very good!! Thanks for the lesson Todd =D

  • @MaximilianBeck
    @MaximilianBeck5 жыл бұрын

    Great presentation and nice feature reveal 😀

  • @paracha3
    @paracha35 жыл бұрын

    Very nice session. Very comprehensive

  • @lukecole5056
    @lukecole50562 жыл бұрын

    Who would've thought Robin Williams would be the best tech presenter and teacher ever?

  • @moomoomamoo
    @moomoomamoo5 жыл бұрын

    Collection group querying! Wooooo~~

  • @spicepirate

    @spicepirate

    5 жыл бұрын

    Wooooo~

  • @mohammedmaaz1765
    @mohammedmaaz17654 жыл бұрын

    For the case of finding restaurants with a certain dish like "Chicken Tikka Masala", he proposed that due to this new feature of "collection-group query" we can now solve this problem if the menu-items are placed in the restaurant docs as sub-collections instead of a map. However it does not make sense to me, because the collection-group query for example: collection_group("menu_items").where("name", "==", "Chicken Tikka Masala") will only return the documents of "menu_items" but not the actual "restaurants" which have that menu item. However in case where I have a map of menu items inside of restaurant doc, I can actually query on the restaurant sub-collection to get actual restaurant docs containing that menu item. Can anyone clear me point, If I am missing something?

  • @n0krashy

    @n0krashy

    4 жыл бұрын

    @@ToddKerpelmanCorp So if I want to query the restaurants documents which contain a certain dish in their menu-items subcolllection, not the dishes documents at all, I have to copy restuarant data (which are more than just the name in my case) all over my items in the subcolllection? Isn't that an overload ? Shouldn't that be improved so I can somehow get the parent documents only ? Also presenting the problem of, when any field in the parent is updated, I have to also repeat that update in all of it's subcolllection items (which is the most annoying problem I'm trying to avoid in NoSQL database scheme for many-to-many relationship)

  • @n0krashy

    @n0krashy

    4 жыл бұрын

    @@ToddKerpelmanCorp also, why can't I perform collection group query by document ID instead of fields ? That's something that should exist

  • @user-jd1vc5ul8p
    @user-jd1vc5ul8p7 ай бұрын

    Thank you! This is awesome explanation!

  • @manupandher39
    @manupandher395 жыл бұрын

    its good to know that i am using firebase in correct manner 😎

  • @balajipadmanabhan4590
    @balajipadmanabhan45904 жыл бұрын

    Wonderful presentation . Hats Off .

  • @arthurcebrian
    @arthurcebrian3 жыл бұрын

    Best teacher ever!

  • @antopolskiy
    @antopolskiy Жыл бұрын

    Great talk and very helpful. Thank you

  • @dylangrijalva2155
    @dylangrijalva21554 жыл бұрын

    Amazing explanation!

  • @sunjin222
    @sunjin222 Жыл бұрын

    Loved it just what i needed to get started

  • @colekillian00
    @colekillian004 жыл бұрын

    Awesome explanation!

  • @preetgandhi1233
    @preetgandhi12334 жыл бұрын

    Very Great Explanation

  • @gofudgeyourselves9024
    @gofudgeyourselves90245 жыл бұрын

    Great job Todd

  • @ivammagalhaes7155
    @ivammagalhaes71554 жыл бұрын

    Great! Thanks for sharing, Todd. :clap :clap

  • @estebanmtz4315
    @estebanmtz4315 Жыл бұрын

    Such a great presentation

  • @bakerkawesa
    @bakerkawesa4 жыл бұрын

    Awesome lecture!

  • @diegocuevac
    @diegocuevac4 жыл бұрын

    Great explanation!

  • @ThePremez
    @ThePremez Жыл бұрын

    That George RR Martin joke didn't get the love it deserved

  • @Meknassih
    @Meknassih2 жыл бұрын

    Exceptional content Todd, thanks a lot !

  • @Firebase

    @Firebase

    2 жыл бұрын

    Glad you enjoyed it!

  • @VINNUSAURUS
    @VINNUSAURUS5 жыл бұрын

    You guys should really make a video on how to structure data for a social media app :P

  • @nfokl

    @nfokl

    5 жыл бұрын

    Totally agree! Working on one now.

  • @jeet5401

    @jeet5401

    5 жыл бұрын

    Firestore is not suitable for social media app, I guess.

  • @raymondmichael4987

    @raymondmichael4987

    4 жыл бұрын

    Nikolai Fedorov, waiting to see it Greetings from Tanzania 🇹🇿

  • @lazymacs2823

    @lazymacs2823

    3 жыл бұрын

    yeah

  • @RamdanCode
    @RamdanCode2 жыл бұрын

    Amazing.. thanks From 2021 :D

  • @goat5249
    @goat52493 жыл бұрын

    Great presentation, Reto Meier! ⭐⭐⭐⭐⭐ for Android Studio

  • @Firebase

    @Firebase

    3 жыл бұрын

    Glad you like it!

  • @asafmazon7
    @asafmazon74 жыл бұрын

    Love it! great talk

  • @arvidurs
    @arvidurs5 жыл бұрын

    Is there a timeframe for native location queries a la GeoFire?

  • @thejohnfranco
    @thejohnfranco4 жыл бұрын

    All my questions has fixed

  • @LarsRyeJeppesen
    @LarsRyeJeppesen4 жыл бұрын

    A backend would help filtering privat fields so the client only gets the fields that are *public" for a given document. Also, a backend could leverage Redis caching to minimize cost. So backend + Firestore is the best of both worlds imho

  • @himbary
    @himbary3 жыл бұрын

    Excellent talk

  • @CimesTwo
    @CimesTwo5 жыл бұрын

    🔥

  • @makemypetgamedevprocess6475
    @makemypetgamedevprocess64752 жыл бұрын

    Love this guy

  • @user-ql5to3rh1o
    @user-ql5to3rh1o5 жыл бұрын

    finally collection group queries 🔥🔥🔥

  • @saminsharar3933

    @saminsharar3933

    5 жыл бұрын

    We know we are nerds when we use 🔥🔥🔥 with collection group queries

  • @UjjwalKumar-wg4wu
    @UjjwalKumar-wg4wu5 жыл бұрын

    awesome stuff

  • @tareqalbeesh9149
    @tareqalbeesh91492 жыл бұрын

    great video!

  • @kirill4531
    @kirill45315 жыл бұрын

    Let's start :)

  • @seunghwanjeong5348
    @seunghwanjeong53485 жыл бұрын

    Awesome !!!!!!!!

  • @praveenaanand6389
    @praveenaanand63895 жыл бұрын

    Hey firebase It's firestore not firestone . See the thumbnail. Anyway i love you firebase 💗

  • @glauberdesouzasilva930
    @glauberdesouzasilva9305 жыл бұрын

    I would like to know how many reads that are executed inside a document that contains other collections. It's possible?

  • @VuizTV
    @VuizTV5 жыл бұрын

    ❤🔥

  • @TheChaitanyaDubey
    @TheChaitanyaDubey3 жыл бұрын

    Great presentation

  • @Firebase

    @Firebase

    3 жыл бұрын

    Thank you!

  • @marinesuper6441
    @marinesuper64412 жыл бұрын

    Best video to introduce firestore to us. Anyone has summary documents which recaps this content?

  • @Firebase

    @Firebase

    2 жыл бұрын

    We're excited to hear you've enjoyed the video! You can head over to firebase.blog/posts/2022/05/whats-new-at-google-io for a summary of what's new at I/O! You can also continue to grow your skills by visiting our learning lab over at ✨ io.google/2022/learning/ ✨😄

  • @eduardorabanal2803
    @eduardorabanal28035 жыл бұрын

    great video

  • @lvenir4702
    @lvenir47023 жыл бұрын

    This s**t is 10 out of 10. Great work.

  • @dobleuxyz
    @dobleuxyz Жыл бұрын

    Amazing!

  • @Firebase

    @Firebase

    Жыл бұрын

    Thank you for the support, Gerardo!

  • @icoffeenz
    @icoffeenz4 жыл бұрын

    amazing video

  • @manujabandara8487
    @manujabandara84873 жыл бұрын

    Great!.

  • @WendelSchultz
    @WendelSchultz4 жыл бұрын

    It was nice to see that what I sort of intuited was confirmed by the Googs here. I'm still a bit unsure how to model organization/team permissions around documents and collections, as well as organization invitations. Using his example, my restaurant has 3 people with sufficient permissions with respect to the restaurant to update the restaurant document. I suspect some sort of restaurant "admin" array with user IDs or something (possibly in an admin collection for permissions reasons), where the write permission evaluates request.user.uid is in the admins array or something. So then doing admin invitations becomes work of could functions, upon login, matching login email/phone principal against invited emails/phones to snag uid. I think. I'm trying to find my legs here.

  • @LarsRyeJeppesen

    @LarsRyeJeppesen

    4 жыл бұрын

    I think using a backend doing your requests would help in your case.

  • @GintsPolis
    @GintsPolis4 жыл бұрын

    Also it is worth to mention, that if Author changes name, all printed books remain his old name :)

  • @xXrostanXx
    @xXrostanXx5 жыл бұрын

    I lov it!

  • @GeireenG
    @GeireenG2 жыл бұрын

    If you didn't like it I talked about Android Studio :D I didn't expect this to be that great!

  • @zakariachahboun
    @zakariachahboun4 жыл бұрын

    Thanks

  • @ooscarr
    @ooscarr5 жыл бұрын

    I understood the references

  • @lasoupedjour
    @lasoupedjour3 жыл бұрын

    nice!

  • @FarryEntertainment
    @FarryEntertainment4 жыл бұрын

    How do you make a chat system with Firebase then?

  • @eric-ampire
    @eric-ampire5 жыл бұрын

    Thanks for that, create video

Келесі