This was an aweosme learning experience. You are a good teacher. You have put a lot of time and efforts in it. Folder structure, namings, state managements and most UI, JUST GREAT.
Great explanation and great code. Congrats. I wish you much success in your life. Just downloaded the code on your Patreon, money well spent! 🙌 congrats
Wow! Everything about this tutorial is amazing, man really cooked something amazing, I can't wait to connect with you on Discord. Thanks for creating this amazing tutorial. 🙌✌✌
This is a really great tutorial - fantastic example of separation of concerns and building small, efficient widgets to compose a larger UI. I thought the Firebase Authentication section was a little rushed (hard to believe, given how long this tutorial is), and it was a little hard to follow on my first watch. I'm curious if you might be able to put together a short tutorial on building a Master-Detail app using Firebase (i.e. show a list of items, tap an item to open detail screen for editing, save and return to list, tap FAB to add a new item, etc.)? This is a common pattern among mobile apps and there aren't many tutorials that show how to construct one from start to finish.
Thanks for your valuable feedback I appreciate such feedback it helps me to improve my content. I will keep that in mind and make shorter details and more specific tutorials. I will make a tutorial on cloud firestore CRUD operation. Please give me some time to prepare such a video.
Really nice job ! But in any app, you have more user data to handle than what Firebase Authentication can store (first name, last name, date of birth, city, country....). How would you combine this with saving/getting user profile data to/from Firestore and handle realtime changes with Riverpod ? It would be very nice if you have any examples to show :)
Firebase Authentication stores few metadata about the user like email, password, userId, created and signIn date, etc. You can few user data using client side sdk like displayName, email, password etc. Here is a full list of available methods. pub.dev/documentation/firebase_auth/latest/firebase_auth/User-class.html#instance-methods And here is a code snippet to change the user email. ⬇️ Future changeEmail( {required String email, required String password, required String newEmail}) async { try { final userCredential = await _firebaseAuth.signInWithEmailAndPassword( email: email, password: password); final user = userCredential.user; if (user != null) { await user.updateEmail(newEmail); /// throw exception here } } catch (e) { print(e); } } Once this succeeds you can immediately call `signOut` method like this `_firebaseAuth.signOut()`. And since our app is already listening to a stream it will sign Out the user. Everything will be in realtime. Firebase Authentication doesn't store more information like you mentioned, first name, last name, date of birth, city, country, etc. For that you need some database.
@@WateryDesert Thanks for your reply. But I'm actually looking for storing and getting more user data from Firestore database (i.e. city, country, global game score, etc...). What I want is that on user login : - Request Firebase Authentication to sign in the user and get his uid (this is what you did in the video) - Request Firestore database with the uid to get the additional user data - Store it all in the same user object in Riverpod to display it in the home page + profile page Would you make this in the same package you created for auth repository, or create a separate package with repository for Firestore data and keep the auth user and db user data separated ? Thanks again
yes, must create a separate repository to handle users collection. And also separate controller. Once the user `sign in` grab the userId. then query more data from `users` collection. Make sure cloud firestore cost you by read-write count.
Hello. First thank you for this amazing tutorial. However, while the forgot password functionality works perfectly and the google sign in, the sign in and sign up do not read the text fields for password and email, resulting in a constant empty error and the button not being clickable
@@WateryDesert Unfortunately I am a student who cannot afford the patreon fees. I would love to support you but unfortunately that is not possible for me. If there is any other way you can assist i’d be very grateful
@@AzamKhan-bb7xg That's the total height of the shape. I explained this in detail in the video but I removed that part from this video. Otherwise, this video would have been even longer. Basically, we need to get the position factor to draw the shape on any screen. Here is some explanation 43:05 if you still don't understand let me know I will make video for that.
@@WateryDesert thank you very much and i am using pixel 4 emulator and you are using iphone 13 emulator so the height here is different can you please tell me which frame in figma i should use for pixel 4 emulator because the android large and android small frame didn't work for me. and it would be very nice to make a full video on it because you didn't take same values of height in fifth and sixth points please thanks Wassalam
This was an aweosme learning experience. You are a good teacher. You have put a lot of time and efforts in it. Folder structure, namings, state managements and most UI, JUST GREAT.
Yeah took me months to complete. You can see the date at the top right corner : D. But I am happy it is helpful for many people in the end.
Man, I rarely comment on youtube videos but I have to say this is great quality. I'm not even half way through. Subscribed and turned on notification!
this guy is awesome the way he explains everything oh my GOD love you man
Amazing. Just become a patron. Looking forward to chatting with you in the discord!
Great video!! very informative
Great explanation and great code. Congrats. I wish you much success in your life.
Just downloaded the code on your Patreon, money well spent! 🙌 congrats
Thank you very much 😊
I'm newbe for flutter and this such advance but clean code and more readable thank you very much.
Wow! Everything about this tutorial is amazing, man really cooked something amazing, I can't wait to connect with you on Discord. Thanks for creating this amazing tutorial. 🙌✌✌
Wow!!! this is exactly what i want!!
This is awesome! Thanks so much for such a detailed example.
Very nice and neat tutorial!
This is a really great tutorial - fantastic example of separation of concerns and building small, efficient widgets to compose a larger UI. I thought the Firebase Authentication section was a little rushed (hard to believe, given how long this tutorial is), and it was a little hard to follow on my first watch. I'm curious if you might be able to put together a short tutorial on building a Master-Detail app using Firebase (i.e. show a list of items, tap an item to open detail screen for editing, save and return to list, tap FAB to add a new item, etc.)? This is a common pattern among mobile apps and there aren't many tutorials that show how to construct one from start to finish.
Thanks for your valuable feedback I appreciate such feedback it helps me to improve my content. I will keep that in mind and make shorter details and more specific tutorials. I will make a tutorial on cloud firestore CRUD operation. Please give me some time to prepare such a video.
@@WateryDesert That's great! I'm actually using Realtime Database (not Cloud Firestore), but I can probably figure out the differences. Thanks!
great architecture, subs
Ty bro, Great job
Great tutorial
AWESOME!
wow very good video, can you add multi-role users?
For anything bit complex we should use SQL, I have a plan making some videos.
Really nice job !
But in any app, you have more user data to handle than what Firebase Authentication can store (first name, last name, date of birth, city, country....). How would you combine this with saving/getting user profile data to/from Firestore and handle realtime changes with Riverpod ?
It would be very nice if you have any examples to show :)
Firebase Authentication stores few metadata about the user like email, password, userId, created and signIn date, etc. You can few user data using client side sdk like displayName, email, password etc. Here is a full list of available methods.
pub.dev/documentation/firebase_auth/latest/firebase_auth/User-class.html#instance-methods
And here is a code snippet to change the user email. ⬇️
Future changeEmail(
{required String email,
required String password,
required String newEmail}) async {
try {
final userCredential = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
final user = userCredential.user;
if (user != null) {
await user.updateEmail(newEmail);
/// throw exception here
}
} catch (e) {
print(e);
}
}
Once this succeeds you can immediately call `signOut` method like this `_firebaseAuth.signOut()`. And since our app is already listening to a stream it will sign Out the user. Everything will be in realtime.
Firebase Authentication doesn't store more information like you mentioned, first name, last name, date of birth, city, country, etc. For that you need some database.
@@WateryDesert Thanks for your reply. But I'm actually looking for storing and getting more user data from Firestore database (i.e. city, country, global game score, etc...). What I want is that on user login :
- Request Firebase Authentication to sign in the user and get his uid (this is what you did in the video)
- Request Firestore database with the uid to get the additional user data
- Store it all in the same user object in Riverpod to display it in the home page + profile page
Would you make this in the same package you created for auth repository, or create a separate package with repository for Firestore data and keep the auth user and db user data separated ?
Thanks again
yes, must create a separate repository to handle users collection. And also separate controller. Once the user `sign in` grab the userId. then query more data from `users` collection. Make sure cloud firestore cost you by read-write count.
Hello. First thank you for this amazing tutorial. However, while the forgot password functionality works perfectly and the google sign in, the sign in and sign up do not read the text fields for password and email, resulting in a constant empty error and the button not being clickable
I don't have such issue. Have you tried to download the source code?
@@WateryDesert Unfortunately I am a student who cannot afford the patreon fees. I would love to support you but unfortunately that is not possible for me. If there is any other way you can assist i’d be very grateful
@@sherifmoataz7282 Source code link is in the description. And it's free to download.
Undefined name 'DefaultFirebaseOptions'. when i cloned the project,I am getting this error
you have to generate firebase_options.dart file. Here you can see 1:32:01
i am getting error at FormzStatus status; variable at 1:00:13 imported the package anything but no such variable is this variable is updated now??
I am busy right now I can't look at your issue. Have you tried to download the source and run?
@WateryDesert yes i have downloaded but that variable is now changed in the package please
I just tested and it's working I don't see any error.
why did you divided the height of 160 by 209 what is 209 value i am stuck there
Where? Add the timestamp.
48:22 i want to make the figma design in android which frame i will select?
@@AzamKhan-bb7xg That's the total height of the shape. I explained this in detail in the video but I removed that part from this video. Otherwise, this video would have been even longer. Basically, we need to get the position factor to draw the shape on any screen. Here is some explanation 43:05 if you still don't understand let me know I will make video for that.
@@WateryDesert thank you very much and i am using pixel 4 emulator and you are using iphone 13 emulator so the height here is different can you please tell me which frame in figma i should use for pixel 4 emulator because the android large and android small frame didn't work for me. and it would be very nice to make a full video on it because you didn't take same values of height in fifth and sixth points please thanks Wassalam
Nice why not creating Zoom course?
Zoom? You mean build that video calling app?
Wslm
what do you mean?