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.
@@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 🤓
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.
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?
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.
@@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.
@@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.
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.
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.
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)?
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.
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.
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
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.
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 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
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?
@@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.
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.
@@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.
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.
Always a pleasure to learn from you. Kuddos
I'm happy to hear that.
Excellent !! We saw this episode with Joaquín 👶 and we loved it 👏
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.
@@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 🤓
@@ferferrara ❤️ You never know.
Dope 🔥🔥🔥🔥. Can't wait to see your google map setup, the google map controller always gives me a hard time.
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
@@FilledStacks awesome 🔥🔥🔥🔥
Patiently waiting for the next video..... we need this!!!
Sorry about the delay. Had a lot of work on my plate but the new video is out :) Hope you enjoyed it.
Superb setup 💙 Thanks Dane 🥂
Thanks Isaac
wow, this tutorial is real deal man, taking it to next level, great job!!
Thanks Jake!! Much appreciated. O try my best to provide tutorials that leave you with a structured code base.
Are you using REST API and will this project also work in the browser and as a desktop app?
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.
Amazing Setup 😄 Thanks FilledStacks!
Thanks for watching! :D Rohit and Fernando stopped watching after they started working at the company haha.
@@FilledStacks I never miss a video. I always wonder what if there is something new. and I always learn something
@@aymennurhussen3689 Awesome to know!
@@aymennurhussen3689 Next video is gonna be important. Gonna try explain more about the unit testing and the process that I use.
@@FilledStacks can't wait to watch it
You earned a new subscriber...keep up the good work man👌🏽
Thank you!! I appreciate the sub man. And thanks for leaving a comment. I'll try my best to keep making more content
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?
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.
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?
I do not. The compiler is giving you all the infor required. You're not supplying the expected type to the function
@@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.
@@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.
I am facing the same issue. How did you fixed this?Any hint will be helpful.
@@mohit-tater Put a break point before serialising, see if the data is what you expect to serialise and then go from there.
thankiu dane as usual great video.. just one question .. are you planning to migrate sqflite_migration_service to null safety soon?
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
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?
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.
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.
i struggle with this too. Always errors
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.
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)?
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.
Can't wait for the stacked_firebase_auth package to include phone auth...
yeah, we'll move that in there when I have to add that functionality into boxt out.
Awesome as always
Thank you! I'm happy you liked it
Hello! Can you make a video about appwrite.io ? It is basically firebase but you host it yourself on your machine.
This is really cool, thanks for the info!
@@TriXuanLe you're welcome
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.
@@FilledStacks okay, thanks for clarification!
Hey, but how do you disable logger in production??
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.
really cool stuff
Thank you. Much appreciated.
Hey, but how do I disable logger in production
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
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.
How to store profile in barcode like Instagram
You store it in the same place as in this video. You just draw it somewhere else.
🔥🔥🔥🔥🔥
:D
🔥🔥🔥🔥 Please mentor me, Dane.🥺
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.
@@FilledStacks Where can I apply?
@@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
1st viewer 😍
Awesome :D
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?
@@hammadpervez4568 he already has a video on that check the channel
@@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.
i feel so dumb
haha, follow along with all the videos and you'll understand much better. We built this from a flutter create project.
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.
@@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.
How do you do l10ns and i18ns ?
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.
Can you do a tutorial on that ....
@@FilledStacks yes please localization tutorial video, or we can wait if its already in planned in the boxt out series
@@shei69 I might. If the package I want to use is ready then I'll do it.