How do queries work in Cloud Firestore? | Get to know Cloud Firestore #2

Поділитися
Вставка
  • Опубліковано 22 лис 2024

КОМЕНТАРІ • 219

  • @Moelgaard85
    @Moelgaard85 6 років тому +263

    Best firestore video so far. Really calls a spade for a spade, talks about what you can do, what will be developed and what you can’t do. And many examples. Perfect. I am so tired of videos where everything is just perfect and avoiding the elephant in the room.

    • @srolesen
      @srolesen 6 років тому +8

      YES, this so much!!!
      so many realtime chat app guides pretending to have ANY useful features for real data usage.

    • @GrumpyOldMan9
      @GrumpyOldMan9 2 роки тому

      He didn't explain how to enable a single composite index for multiple collections.

  • @MartinRyleOShea
    @MartinRyleOShea 6 років тому +215

    The best tech evangelist of any tech company. This guy really knows his craft.

    • @vaguebrownfox
      @vaguebrownfox 3 роки тому +6

      He really helps me calm down my anxiety to start a project.

    • @RR-et6zp
      @RR-et6zp 2 місяці тому

      @@vaguebrownfox lol, how was your project

  • @Mrdoctordiv
    @Mrdoctordiv 4 роки тому +298

    Watching this in 2020 with the 2019 update added in.. this. This is quality content. I chose the right platform for my web app.

    • @lesmo34
      @lesmo34 4 роки тому +17

      ikr! I'm seriously troubled by the fact that it says it was published May 2018... you can either edit UA-cam videos with some sorcery I don't know, or they have a perfectly nice roadmap way ahead in time... I don't know.

    • @HieuNguyen-vk7ix
      @HieuNguyen-vk7ix 4 роки тому +23

      @@lesmo34 I mean, FireStore belongs to Google, UA-cam belongs to Google too. You know what I mean

    • @MatthewChenIsAwesome
      @MatthewChenIsAwesome 4 роки тому +13

      @@HieuNguyen-vk7ix yeah. as of now, IIRC only Google can edit their own videos

    • @rajpanchal9226
      @rajpanchal9226 4 роки тому +2

      @@HieuNguyen-vk7ix They should not do this tho its really dangerous, if suppose there's a really old video and someone describes newly found innovations in it the people who are the inventors of those innovations will have a hard time getting patents for those innovations.
      In fact if the tech in this video is patented by them in 2019 they might as well get into trouble.

    • @lesmo34
      @lesmo34 4 роки тому +3

      @Casuality videos edited in Creator Studio don't keep their original creation date ;)

  • @OvenBakedCookie
    @OvenBakedCookie 4 роки тому +19

    Todd is bloody amazing. The pacing, examples, emphasis, humour, enthusiasm, level of technical detail; he is the perfect software trainer.

  • @prashantraghu8536
    @prashantraghu8536 6 років тому +117

    Guys please make more such algorithmic videos explaining all the features in somewhat low level. This was simply amazing.

    • @crazysoap05
      @crazysoap05 5 років тому +2

      I don't think they are going to give their secrets away haha

  • @DavidUngerMusic
    @DavidUngerMusic 6 років тому +30

    I love how Todd makes seemingly complex ideas easy to understand. Bravo!

  • @StephanieKraemer
    @StephanieKraemer 16 днів тому

    I continue to be so impressed by the documentation and resources available for Google Cloud Platform. I learned to code less than two years ago and now I am creating Cloud Run services to query our firestore database, developing small apps that read and write to BigQuery, and designing SLO's. GCP is the best. (Also, 2019 Todd had such a glow-up!)

  • @mandisaw
    @mandisaw 6 років тому +3

    Brief, but insightful, and a good bridge for the folks coming from a relational DB background. Structuring data to suit Firestore's query capabilities is the key takeaway here - that should be mentioned in the description. It's easy to miss it thinking "ah, I know how to query" - I know I nearly did.

  • @kaibe5241
    @kaibe5241 Рік тому

    hahaha, the time warps back to update the content is absolutely SUPERB! Bravo!!! *applauds*

  • @JanM457
    @JanM457 Рік тому +1

    I'm smashed by the fact that Ray's Restaurant scored over 4.5 stars just selling Radishes. What a guy!

  • @DRocksRecords
    @DRocksRecords 3 роки тому +3

    Thanks, im starting to feel more confident about firestore as I watch.

  • @jhadesdev9576
    @jhadesdev9576 6 років тому +18

    Awesome video, probably the best i have seen on the topic, focuses on the Why and not the How, which is usually what gets overlooked in tutorials

  • @zechcampbell
    @zechcampbell 6 років тому +2

    Amazing explanations about what Firestore can and cannot do. Wish there were more resources like this.

  • @yashsoni1120
    @yashsoni1120 2 роки тому

    he is so good at this and everything kind of makes sense now! thanks for the series!!

  • @rawtale97
    @rawtale97 2 роки тому +2

    Had to go through variouse tutorials before understanding how I should make a propper query for Firebase, I think there might be a lack of examples in the docs and also in this video.

  • @mgohds
    @mgohds 5 років тому +5

    This is great series. You are doing great job explaining basic behavior and are charismatic in the process which is rare in this kinda videos.
    Playlists also sure help a lot. Keep up the good work :)

  • @Qoor1994
    @Qoor1994 5 місяців тому

    Todd, you are amazing. Thank you for sharing your technical knowledge!

  • @albertodeveloper347
    @albertodeveloper347 6 років тому +2

    This teacher is VERY friendly!! thank you!! and now I go for vide #3 :)

  • @chriscurnow143
    @chriscurnow143 6 років тому +2

    Seeing this video pop up on my alerts made my day. And actually watching it was just as much fun and just as informative as I expected it to be. So.... when's the next one coming??

  • @luundalite7962
    @luundalite7962 3 роки тому

    Watching in 2021 but no future guy from 2020 though. Great content. Amazingly intuitive.

  • @KnO1951
    @KnO1951 4 роки тому +2

    Great presentation of the occasionally head-spinning content that you have made easy to consume. kudos!!

  • @andyfusniak
    @andyfusniak 6 років тому +1

    Great video. As querying a collection automatically generates an index, this raises a whole bunch of questions... How can we see what indexes are in use? Does a one-off query cause an index to be built and maintained for the lifetime of a collection? What is the storage cost penalty for each index? Can we remove an index? Does having more indexes slow down document write speed, or are indexes eventually consistent?

    • @Frank_van_Puffelen
      @Frank_van_Puffelen 6 років тому +2

      Wow, lots of great questions. I'll try to answer what I can quickly: 1) there is no way to see what indexes are used. But while it would be interesting to see the query plan, you can't affect it. No matter how you write the query, the indexes used will be the same. 2) If you don't need a composite index anymore, you can delete it from the console. 3) there is no charge for index storage. 4) yes, you can remove any composite index from the console 5) I haven't gathered any such performance metrics for this yet. I you get to them, I'd love to see the results.

  • @27sosite73
    @27sosite73 2 роки тому +1

    awesome
    one more perfectly structured video!
    top!!!

  • @davidpui4675
    @davidpui4675 2 роки тому +1

    How do you create a denormalized query output which can be populated from different nest collections ? Also can you also join results from different nested collections from different Firestore Projects ?

  • @tomascarignano5002
    @tomascarignano5002 3 роки тому

    Superb documentation Firebase team!

  • @BissoliR
    @BissoliR 6 років тому +4

    You guys should do a serie about Elasticsearch integration cause it seems a little frustrating not having this option til now. We need 'like' queries indeed.

  • @codewithtae6637
    @codewithtae6637 Рік тому

    According to the docs, you can do "OR" queries. At the time of this writing, the "OR" query is in "preview".

  • @OfferoC
    @OfferoC 6 років тому

    Awesome. Please continue to go in depth on fire store.

  • @cyrilledakhlia3761
    @cyrilledakhlia3761 Рік тому

    Excellent content that makes it so fun to learn and makes me want to learn more about it!
    One of the best content I've seen!
    👏👏

  • @vinfragwarrior
    @vinfragwarrior 3 роки тому +3

    "the time it takes to run a query is proportional to the number of results, NOT the number of documents you're searching through"
    MY LIFE IS A LIE. This goes against everything I thought I knew hahaha

  • @thedevguild7525
    @thedevguild7525 2 роки тому +2

    Wow did they update the video? I understand it is posted in 2018 but in 2:11, todd mentioned/"joke" it is the year 2019

    • @MrRousina
      @MrRousina Рік тому +2

      Lol I am just wondering the same, like was that in the original video or is it updated somehow xd

  • @choibaksa85
    @choibaksa85 5 років тому +21

    subtitle broken!

  • @quangquang4813
    @quangquang4813 6 років тому +7

    I have been waiting too long for this episode. :(( This is a great video anyway

  • @nikhilenmudi2490
    @nikhilenmudi2490 6 років тому +1

    Love you analogies and explanation style!

  • @musicandoutdoors
    @musicandoutdoors 5 років тому

    Agreed with the comments, this video taught me to fish instead of giving me a fish. I understand much better now

  • @scottieschneider1925
    @scottieschneider1925 4 роки тому +1

    Thank you so much for this! Really great information.

  • @nldr_theunisdk
    @nldr_theunisdk 6 років тому +1

    The was super informative!! thanks! I am glad that there are more vids about the advanced features. You tend to miss them in the docs.

  • @joshuaoba2526
    @joshuaoba2526 4 роки тому

    At 2:50 , when you say “ 200 of this things “ do you mean 200 Collection group queries or 200 Documents to search through per Collection group query or 200 results per Collection group query

  • @IljaDidDevs2
    @IljaDidDevs2 6 років тому +16

    Would be awesome to have similar video done for security rules :)

  • @thedevguild7525
    @thedevguild7525 2 роки тому

    Hi Todd, may i ask how is the index/ document id created/name? 5:44
    Please correct me if i am wrong, I believe that how indexing work is create individual tables for each field name e.g. address - 1 table and crusine - 1 table. 9:48
    Within each table is the value and its location

  • @eliteeth4n
    @eliteeth4n 6 років тому +20

    More "Into the weeds" videos!

  • @zensic
    @zensic 2 роки тому

    Thank you! Very helpful!

  • @munzilirrohmah6425
    @munzilirrohmah6425 2 роки тому

    Hi Todd. This is the most enjoyable tutorial video I've ever seen 😂 Easy to understand and hilarious at the same time

  • @davisyeung937
    @davisyeung937 4 роки тому

    Awesome video! It will be great if there is a detailed video explaining the suggested way of doing "full text searching" in firestore.

  • @abc-yg6tk
    @abc-yg6tk 6 років тому

    Excellent video. Entertaining, good pacing, explains the algorithms and the why and how. Learnt a lot in 15mins

  • @rasulbc
    @rasulbc 2 роки тому +1

    thanks for telegram notification sound on 0:16

  • @cutiko
    @cutiko 6 років тому

    The indexing link works like a charm.. except while using multiple accounts. Yes, it is an edge case and would dismiss it normally but I start to get tangled with this because in my new gig they made a mail account for me, which I have to use for the project. So when copy/paste the link, it doesn't work because is by default grab my main account. I'm doing a work around on this by pasting the link on an incognito tab or opening it in another browser.

  • @101nka
    @101nka 5 років тому +1

    These videos are so entertaining

  • @BaRzOmk
    @BaRzOmk 6 років тому +5

    Please more videos and Please explain more slower, feels like we are running from firestorm :)) And love all firebase videos... Thanks again...

    • @MrRantelo
      @MrRantelo 6 років тому

      We can no longer watch in 2x speed :(

  • @Elyx0
    @Elyx0 5 років тому +7

    Subtitles are messed up from the 2019 update!

  • @activewire-play7109
    @activewire-play7109 5 років тому

    Just a question, the composite index is a string and we are checking for a number comparison. is that a right example?

  • @NicoloZanetti
    @NicoloZanetti 5 років тому +3

    I can't say that I fully understood the difference between an equality and inequality search, I got an idea, but I wouldn't be sure about what I would code.
    If I start from the Restaurant in S. Francisco (iii), and then I Zig to the Japanese one with the same id (iii), and then the next Japanese one (ttt) which sends me back to the ones in S. Francisco (ttt), how can I be sure that I haven't skipped some in the S. Francisco list between iii and ttt? This would assume that the Japanese restaurants are also sorted by City, but with other fields and possibly changes happening is this really always true and reliable?
    Did I just describe that it could be an "inequality" search where there's no certain relationship between the order of the two fields?

  • @rubencg195
    @rubencg195 5 років тому +2

    When are the OR, IN, CONTAINS and other similar conditions going to be available? It really limits the usability of the platform.

    • @paulmacfarlane6089
      @paulmacfarlane6089 4 роки тому

      A little bit late on this, but an "or" condition can now be accomplished using the "in" query operator, and specifying the potential alternatives in an array (although right now they limit it to 10 possibilities). From the docs:
      citiesRef.where('country', 'in', ['USA', 'Japan']);
      you can also use array-contains-any
      citiesRef.where('regions', 'array-contains-any',
      ['west_coast', 'east_coast']);

  • @noamgonen6243
    @noamgonen6243 6 років тому

    love your technical jargon. Googling Giant Pain in the .... right now

  • @PrashanthHN
    @PrashanthHN 6 років тому

    Nice! had been wondering about query efficiencies since a week and this explains it well!

  • @DiegoJaraPalomino
    @DiegoJaraPalomino 6 років тому +1

    This is great! Can't wait for the pagination video

  • @brunodigiorgio1127
    @brunodigiorgio1127 2 роки тому +5

    Un capo Robin Williams

    • @alexismarin905
      @alexismarin905 Місяць тому

      Broooo hahaha tambien pensaste lo mismo

  • @candyman3537
    @candyman3537 4 роки тому

    You mentioned the max size of a document is 1mb. Does it include sub collection?

  • @BobJames-l1y
    @BobJames-l1y Рік тому

    Great walk through, however, my dashboard brings up Datastore (not Firestore) where I can add "entities"; I want to use Firestore and create collections and docs. I have clicked on every dev and admin option and still end up in the same place. What went wrong??

  • @marriagebureaufreematrimon5751
    @marriagebureaufreematrimon5751 6 років тому

    really good information thank you

  • @rammalvarez2664
    @rammalvarez2664 6 років тому

    Very nice video! Thank you guys!

  • @blablablabla29382
    @blablablabla29382 Рік тому

    How order by a field which potentially not exist in firestore ? (Can we put a default value in this situation ?)

  • @KamelJabber1
    @KamelJabber1 4 роки тому

    LOVE THE UPDATE! thanks so much for that

  • @pasta0328
    @pasta0328 6 років тому +2

    You are an excellent teacher

  • @helix-b9p
    @helix-b9p 4 роки тому

    so exciting thanks

  • @raghav4296
    @raghav4296 6 років тому

    Wow, Indeed a great video!! Since there is no full text search supported as mentioned 6:30 isn't it a common use case for most apps, as in this case, the user may not type the restaurant name correctly all the time.Any simpler way of doing this other than hooking up a elastic search/Algolia?

  • @GrumpyOldMan9
    @GrumpyOldMan9 2 роки тому

    Each user of my app has his/her own collection. That collection has the same structure for all users. How can I make a SINGLE composite index that applies to ALL these collections, even future ones?

  • @connorflewitt8377
    @connorflewitt8377 2 роки тому

    Todd is such a great presenter!

  • @RoBuceo
    @RoBuceo 5 років тому

    A collection query order by name for example, gives me something like the following: "A", "B", "C", "a"... which collation does it use? Can we make any change to get "A","a","B", "C"?

  • @PlayerHeader
    @PlayerHeader 5 років тому

    Ahh now I understand it 10:45.
    If we have this indexes for zip code, which is a string, then firebase puts in to the index table all zip codes side by side (groups them) and orders them by their doc_id, so that aaa is the first and xxx the last.
    But if we have some stuff like the avg_rating, and do > or

  • @osmanmusse9432
    @osmanmusse9432 3 роки тому

    great mentor

  • @bazoozoo1186
    @bazoozoo1186 5 років тому

    this guy is hidden gem

  • @UsmanAli-ox3mn
    @UsmanAli-ox3mn 2 роки тому

    Overloaded.... I have to watch this multiple times.... still good video

  • @azka9075
    @azka9075 4 роки тому

    what do you mean when you said we are limited to 200 of these things during the collection group query limitations part, do you mean we can only create 200 collection groups at most?

  • @ME-oe9gq
    @ME-oe9gq 4 роки тому

    watching this in quarantine

  • @romualdbarbe1070
    @romualdbarbe1070 6 років тому

    Thanks a lot
    I'm waiting for the episode about searching in text :)
    Apparently we can do it with algolia, is there a way to perform a search with synonims ?

  • @hybridboy9_9
    @hybridboy9_9 10 місяців тому

    In my app, user can search by name, order by stock or price (asc/desc), filter by category, brand, color, size... timestamp
    in such case do i have to create 64 (subset of 6) composite indexing? for all the scenarios, where search can be include or not filter can be done or not, timestamp sorting will always be there other sorting can be done or not?
    its getting very frustrating to achieve this, better to use some other database.

  • @DavidNitzscheBell
    @DavidNitzscheBell 3 роки тому +2

    In Kotlin, how can I save a document that contains an enum and then read it back? I'm able to save, but reading it back crashes the app.

  • @1002CK
    @1002CK 6 років тому +1

    Actually last three minute help a lottt

  • @riderpaul
    @riderpaul 5 років тому

    I read that Firebase stores its offline data in SQLite. Is it possible to do a full text search against this local data or do I need to sync it to a secondary SQLite file to query against? Or is there a better way? The data set is about 100K varchar 100 in size and I need to be able to search "%STR1%" AND "%STR2%" #AskFirebase.

  • @russellmorland7382
    @russellmorland7382 4 роки тому

    Is there a way to request the document with the highest value, given a collection?

  • @aungkhant502
    @aungkhant502 3 роки тому +1

    Update: != query on a single field is now supported since Sept 2020.

  • @PlayerHeader
    @PlayerHeader 5 років тому

    9:30 - I don't understand why this ain't working but the example with San Franciso and Japanese is working at 8:40

  • @shelled7321
    @shelled7321 5 років тому

    On my website, it opens with all the items in the database being show. So would it be best to query the data base for the data the user wants and then re-import what that are filtering for, or to import the whole database when the website loads then filter it on a button click using javascript? Sorry if this is a dumb question, I'm new to web development and the whole thing is extremely confusing. Also, I'm using react and redux with firestore. Is this going to be efficient enough to build a website, or should I be using a different stack?

  • @sasimarian142
    @sasimarian142 6 років тому

    Is there any number of composite indexes limitation?

  • @MoraraFrank
    @MoraraFrank 5 місяців тому

    How about querying a single document. How does that work when separating between document snapshot Id and document id, it fails to find document because the passed id is document Id while it finds document snapshot id.

  • @tranquillityEnthusiast
    @tranquillityEnthusiast 5 років тому +2

    How can we order the document by time

  • @anubebe3
    @anubebe3 3 роки тому

    So what is the solution for implementing foreign key as in SQL ?

  • @anjikyuzan
    @anjikyuzan 3 місяці тому +1

    I don't know if Calico's venture is doing well but it seems that Google resurrected Robin Williams!

  • @Balaji-qx3ul
    @Balaji-qx3ul 4 роки тому

    Best with play speed of .75 :) excellent tutorial.

  • @walkerrabelo
    @walkerrabelo 5 років тому

    Pleeeaaassee ! Update the subtitles ! Vivek is right ! After the time traveller made an entry the subtitles got out of sync ! :(

  • @TheTiagoslater
    @TheTiagoslater 4 роки тому

    excellent video

  • @NoamGaash
    @NoamGaash 6 років тому +1

    #askFirebase
    on 9:30 - "select all restaurants where zip=94045 and ang_rating > 4.6"
    why can't you binary search each index document id from the right side in the left side?

    • @NoamGaash
      @NoamGaash 6 років тому +1

      complexity would be O(r_rating * log(r_zip)), and since you considered log as a constant it would still be O(r)

  • @irfcconsultoriaeservicoslt2969
    @irfcconsultoriaeservicoslt2969 3 роки тому

    Does firebase indexes maps in array of maps?

  • @AlexPaluzzi
    @AlexPaluzzi 6 років тому

    Please more videos like this. More code too. Would love to see some stuff from scratch.

  • @nickadams2361
    @nickadams2361 2 роки тому +1

    wow this guy rocks

  • @ahmedma527
    @ahmedma527 3 роки тому +1

    How to make case insensitive queries?

  • @yeeen123
    @yeeen123 6 років тому

    Is the collection grp query feature alr in?

  • @llogo
    @llogo 5 років тому +2

    Hi, Is this video still relevant or is it out of date as suggested it would be early in the video?

  • @sleepy-dev14
    @sleepy-dev14 Рік тому

    How come the OR (||) operator doesn't work like stated in 8:03 but when using the "in" operator like where("someProp", "in", ["value1", "value2"]) works in firestore?