Handle User Profile in Flutter | Firebase User Profile Management

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

КОМЕНТАРІ • 86

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

    Always a pleasure to learn from you. Kuddos

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

    Excellent !! We saw this episode with Joaquín 👶 and we loved it 👏

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

      Fernandooooooooooo!! Getting Joaquin ready to run FilledStacks in 18 years? :D
      Also I thought you stopped watching the channel :D I'm suuuper excited for the new video. I actually just finished the code 10 minutes ago.

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

      @@FilledStacks More or less, who knows haha. With this kind of content on the network, may not need University 😊
      Nono, I watch the episodes when I have some free time 🤓

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

      @@ferferrara ❤️ You never know.

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

    Dope 🔥🔥🔥🔥. Can't wait to see your google map setup, the google map controller always gives me a hard time.

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

      yep, it's a tricky one. But I'll probably wrap the functionality in a package that makes it easier and then use that :D

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

      @@FilledStacks awesome 🔥🔥🔥🔥

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

    Patiently waiting for the next video..... we need this!!!

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

      Sorry about the delay. Had a lot of work on my plate but the new video is out :) Hope you enjoyed it.

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

    Superb setup 💙 Thanks Dane 🥂

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

    wow, this tutorial is real deal man, taking it to next level, great job!!

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

      Thanks Jake!! Much appreciated. O try my best to provide tutorials that leave you with a structured code base.

  • @anonimanonim1223
    @anonimanonim1223 8 місяців тому

    Are you using REST API and will this project also work in the browser and as a desktop app?

    • @FilledStacks
      @FilledStacks  8 місяців тому

      I can't remember I haven't watched the video in a while.
      You can watch it and check if I'm using a rest API.
      The project used here might work in the browser, although the code is many years old. But you can try it out.

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

    Amazing Setup 😄 Thanks FilledStacks!

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

      Thanks for watching! :D Rohit and Fernando stopped watching after they started working at the company haha.

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

      @@FilledStacks I never miss a video. I always wonder what if there is something new. and I always learn something

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

      @@aymennurhussen3689 Awesome to know!

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

      @@aymennurhussen3689 Next video is gonna be important. Gonna try explain more about the unit testing and the process that I use.

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

      @@FilledStacks can't wait to watch it

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

    You earned a new subscriber...keep up the good work man👌🏽

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

      Thank you!! I appreciate the sub man. And thanks for leaving a comment. I'll try my best to keep making more content

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

    Hey, great setup. Tried your code and found that the user state is not persistent. Wanted to know how can we do that? Should I use shared_preference or firebase auth has it build in?

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

      The user object for auth is always on disk, the user profile is not saved anywhere because that's built into firestore. It'll cache it for 28 days and won't read a new one unless it's been changed.

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

    Min 11:00 row 41. I have an error as userData is of type Object and User.fromJson expects a Map . Do you have some tips?

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

      I do not. The compiler is giving you all the infor required. You're not supplying the expected type to the function

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

      @@FilledStacks I don't know, i follwed step by step. 'The argument type 'Object' can't be assigned to the parameter type Map. Because final userData = userDocument.data() is giving me an object and the factory User.fromJson() of application_models User is waiting for a Map.

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

      @@carlodenardin You probably did follow step by step. But since null safety has been introduced type safety is much more strict so you just have to ensure you're using the right types or cast to what you need.

    • @mohit-tater
      @mohit-tater 3 роки тому

      I am facing the same issue. How did you fixed this?Any hint will be helpful.

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

      @@mohit-tater Put a break point before serialising, see if the data is what you expect to serialise and then go from there.

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

    thankiu dane as usual great video.. just one question .. are you planning to migrate sqflite_migration_service to null safety soon?

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

      Thank you. And yes, there's a pre-relrease package you can use. In a week or so I'll promote it to stable since there's no complaints so far

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

    Does this approach support changing something in the User Data? For Example if you save the last name in the User Data, canIchange it later on?

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

      This approach kind of has something to do with that, but not really. This is just creating the document on firestore. We'll add logic later on for updating the profile, which is just another call to .set with the new updated data.

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

    I'm really interested to see how you and your team handle firestore timestamps, I personally hate that they went proprietary but I do understand the need for better resolution on nanoseconds.

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

      i struggle with this too. Always errors

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

      I look forward to us handling it too if we need to do it. We haven't had to yet so I'm curious to see what the issues are with them.

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

    Isn't that too much backend-logic for a client application? Because the client can just create, get and update information of whichever user it wants - if I don't miss something here. Is there at least some authorization mechanism which allows only mutating the real user's data (via token validation or something)?

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

      I think you might be missing something here. We're doing as little as we need to for user profile management. But lets discuss it, maybe there's a better way I can share with the community. Which part specifically do you think should be removed and how should we replace it?
      I have done it through an API ,but that's if I want to track additional things like user sync count, i.e. last active, or additional stats etc.

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

    Can't wait for the stacked_firebase_auth package to include phone auth...

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

      yeah, we'll move that in there when I have to add that functionality into boxt out.

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

    Awesome as always

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

      Thank you! I'm happy you liked it

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

    Hello! Can you make a video about appwrite.io ? It is basically firebase but you host it yourself on your machine.

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

      This is really cool, thanks for the info!

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

      @@TriXuanLe you're welcome

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

      Hey, I won't be able to. I've never used it. When I use it for something in production then I'll make a video about it. At the moment I don't have a reason to switch from Firebase so I probably won't in the next year or two.

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

      @@FilledStacks okay, thanks for clarification!

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

    Hey, but how do you disable logger in production??

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

      Hey, I don't. My logger stays on so that it can log to my Cloud logging service for production debugging if anything goes wrong.

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

    really cool stuff

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

    Hey, but how do I disable logger in production

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

      You can add it into the logger afterwards there's a log filter you can supply. it's not supported in the generator yet. But it general a release build won't print out anything anywhere. but for us it logs to cloud service

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

      Log filters. You can add it afterwards. Copy the logger code out of the generated file, then remove logger from your app annotation then just write your own log filter to not print when kRealease is true.
      I'll add support for that some time.

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

    How to store profile in barcode like Instagram

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

      You store it in the same place as in this video. You just draw it somewhere else.

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

    🔥🔥🔥🔥🔥

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

    🔥🔥🔥🔥 Please mentor me, Dane.🥺

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

      If there's an opening again at filledstacks you should apply and you could join in our little team and learn through developing client apps for other companies.

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

      @@FilledStacks Where can I apply?

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

      @@ademolafadumo1596 I announce on the slack channel first then on my linked in. You can join slack with the link below.
      join.slack.com/t/filledstacks/shared_invite/zt-mcw04u5t-dTeyH0lPONuzd9i0osk9Gw

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

    1st viewer 😍

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

      Awesome :D

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

      Hi bro, Can you please make a video on handling Route navigation? I means when we are navigating from home page to detail page and then nested detail page and then from nested detail page we go to Cart screen and so on and so on.... . What is the best practice to handle this complex route navigation?

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

      @@hammadpervez4568 he already has a video on that check the channel

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

      @@hammadpervez4568 Hey, I have made 5 videos about that I think. I show it in my architecture setup. And what you're mentioning isn't complex routing. It's actually normal routing :) We use the stacked router + navigation service. That's all we've ever needed.

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

    i feel so dumb

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

      haha, follow along with all the videos and you'll understand much better. We built this from a flutter create project.

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

      dont worry the videos on this channel are pretty dense with information, i struggled as a beginner too but start from the architecture videos and rewatch the videos as many times as you need to clearly understand them. I personally rewatched them atleast 10-15 times and also go through the blog in the description.
      But it was worth it, it changes your perception about software once you start using an architecture.

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

      @@martinharris4416 Thanks for clearing that up! I appreciate the comment and the input, it's pretty dense. Mostly because it packs all my experience of building these specific features into the app.
      I'm hoping that over time they teach the fundamentals of building software.

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

    How do you do l10ns and i18ns ?

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

      I have a location service that does translations. Every viewmodel has access to the translation service through the [] parameters so in my view I have Text(model[SettingsNotificationtitle]) and that gets it from my localisation service using the key.

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

      Can you do a tutorial on that ....

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

      @@FilledStacks yes please localization tutorial video, or we can wait if its already in planned in the boxt out series

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

      @@shei69 I might. If the package I want to use is ready then I'll do it.