Firebase Google Sign-In With Jetpack Compose & Clean Architecture - Android Studio Tutorial

Поділитися
Вставка
  • Опубліковано 4 кві 2023
  • In this video you'll learn how you learn how you can implement Google Sign-In with a Firebase backend in your Kotlin Android app.
    ⭐ Claim the limited 30% easter discount with EASTER30 during checkout ⭐
    pl-coding.com/premium-courses...
    💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks:
    pl-coding.com/drop-table-ment...
    Subscribe to my FREE newsletter for regular Android, Kotlin & Architecture advice!
    pl-coding.com/newsletter
    Join this channel to get access to perks:
    / @philipplackner
    Get the source code for this video here:
    github.com/philipplackner/Com...
    Join my Discord server:
    / discord
    Regular programming advice on my Instagram page: / _philipplackner_
    Checkout my GitHub: github.com/philipplackner
    You like my free content? Here you can buy me a coffee:
    www.buymeacoffee.com/philippl...

КОМЕНТАРІ • 145

  • @kintanpatel6002
    @kintanpatel6002 2 місяці тому +16

    Some method are deprecated and tell us to use Credential Manager, can we have updated video on Credential Manager?

  • @adityagarud861
    @adityagarud861 Рік тому +59

    This guy on UA-cam is a life-saver.

  • @SpaceGuideHub
    @SpaceGuideHub 8 місяців тому +1

    Your assistance has significantly propelled me towards the launch date, particularly in figuring out Firebase Google Sign-In with Jetpack Compose, implying that I might very well invest in your CI/CD course.

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

    Thanks, Philipp! Yep, it took a lot of time to adapt your type of navigation to my app, but I did it, and now everything works as expected.

  • @kylewhynott6146
    @kylewhynott6146 3 місяці тому

    Thanks for the tutorial! I had to build something out more advanced for a project I'm working on, but it was a great tutorial for understanding how to do this with Kotlin and Jetpack Compose. Last time I wrote a major application it was still in Java with Activities, Fragments, and XML Layouts. Love all your videos.

  • @cristiancelis3410
    @cristiancelis3410 День тому

    After watching many videos on how to connect firebase to kotlin with compose, u have saved me :D thx

  • @chiragdhunna990
    @chiragdhunna990 Рік тому +7

    Great video video, do make more tutorials like this it will definitely help the community grow!!

  • @androidkotlin-6234
    @androidkotlin-6234 Рік тому +1

    Do you know what? I'm developing my application, and just open youtobe for find how to auth with google firebase, and saw your video!
    You are amazing, white bro!

  • @chips056
    @chips056 Рік тому +7

    Great video, you never disappoint! Thank you for this one 😊

  • @TheZaurHasanov
    @TheZaurHasanov Рік тому +3

    Omg you came back to Firebase again 😍 Thanks so much

  • @johnpunzak8916
    @johnpunzak8916 Рік тому +6

    Suggestion for a new video:. Could you take sign in further and make leaderboards for games? Google did not create a Kotlin version of their leaderboards yet. It would be great to see that. And thank you for your wonderful and amazing videos!!!😊

  • @germenwong
    @germenwong 8 місяців тому +1

    As always, wonderful and practical brother. You are really great and have taught me a lot. Please continue to create Compose, integrate Firebase, and Google's

  • @pasdeal
    @pasdeal 6 місяців тому +8

    Im running Android Studio Giraffe | 2022.3.1 Patch 2 and to get the signingReport option to show at 6:37 you now need to CHECK the box "Configure all Gradle tasks during Gradle Sync" under the Experimental tab and then sync your project. Thanks for the guide 🥰

    • @supersanta4059
      @supersanta4059 29 днів тому

      OMG mate, you saved me right there. Thank you sooo much for that.

    • @user-Farooqzx
      @user-Farooqzx День тому

      Thank you

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

    Thank you so much Philip.Your efforts are really Appreciated 🎉❤❤

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

    Thank you so much for this Philip , ever grateful .

  • @Joel-if2bg
    @Joel-if2bg 5 місяців тому +2

    For newer verisons of Android Studio (>Flamingo) you need to CHECK the box for "Configure all Gradle tasks during Gradle Sync (this can make Gradle Sync slower)", then Sync Project with Gradle Files

  • @johnshepard1267
    @johnshepard1267 Рік тому +3

    What if we have our own backend and auth system but we want to add a "quick" authorization/registration with Google - can we use the same approach? Will it be possible to somehow map the data of the google account to our account model and save on our servers or create an account with them? Cause I think we would want to also somehow manage users who registered with Google etc?

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

    I love it 😍
    Thanks Mr.Philipp

  • @33t00p
    @33t00p 9 місяців тому

    Philipp, thanks for another awesome tutorial.
    I'm just wondering about LoginScreen always hanging there in the backStack as long as user does not log out.
    I haven't tried, but if I will want to pop the Backstack, I will always have to popBackStack(ScreenAfterLogin, inclusive=false)
    Otherwise when we get to LoginScreen, auth request is send to Firebase.
    So there is always this first (LoginScreen) in the backStack.
    Maybe it's better to put LoginScreen before calling AppComposable ?

  • @4ytonly
    @4ytonly Рік тому +4

    Is there any difference about fetching SHA in debug vs release versions of app???

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

    Lol, just got a task to do the same. Right in time))) Thx a lot Philipp

  • @hussein9577
    @hussein9577 Рік тому +5

    Great content, just as always

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

    Hey philipp... So I used Compose and Dagger for it and it works completely fine but there is one issue!! I cant get it to display profile picture which is set... Im using FirebaseUser data class instead of custom class. Any idea why this might be happening?

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

    How to periodically start workmanager to monitor the expired state? (Assumed successfully logged in) and the work manager is bound to activity level state

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

    Oh my god I love your videos so much, keep making videos pls

  • @cse9193
    @cse9193 2 місяці тому

    I am using mvi pattern in my project. Is it correct to send the userData object as a parameter to the profile screen?

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

    Great video Philipp!! I have a problem with the functionality.. in the emulator works perfect but I my physic device, the bottom popup doesn't show... Did this happen to anyone?

  • @eugenewainaina5626
    @eugenewainaina5626 3 місяці тому

    I like how he blurred the project support email then in the confirmation part it was plain visible 😅 great video though, this is just what I needed

  • @Iraskate
    @Iraskate 7 місяців тому

    Great tutorial! One issue though, I am trying to save the user's email in the UserData class, but it returns null. Why is that?

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

    OMG how much i wish you posted this video a week ago😭😭😭

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

    Hi I have wordpress website I converted using android studio. Everything works fine except the Google login also wordpress signup. Can please help on this. Pls add video on this

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

    what to do if the registration works on the emulator, but not on the protection of the phone. Yes, I gave access to the Internet in manifest . help pleas

  • @eduardoruesta5180
    @eduardoruesta5180 3 місяці тому

    Cool!! what could be the difference if we want to do this example in a Compose Multiplatform project?

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

    Hi! I can´t use the GoogleAuthUiClient() :( whyyy? Now is deprecated?

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

    Awesome video Phillip, will this be enough auth in order to use google drive API?

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

    Didn't work with some cryptic error about missing feature in gms.

  • @user-ed4kf3yj6p
    @user-ed4kf3yj6p Рік тому +4

    Please create biometric authentication using jetpack compose next. I really need it.

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

    Hello, i try to use the version control to build the app, but my application has a problem, the Google account pop up doesn't appear, what happened? What should I fix, can anyone help me?

  • @karthikeyan8670
    @karthikeyan8670 2 місяці тому

    I have tried your code in my android Studio, but error is showing like this
    CompositionLocal LocalLifecycleOwner not present

  • @Leon-un2ii
    @Leon-un2ii Рік тому +1

    Please make an UI lock screen with a PIN storage like many apps use it. Threema, Telegram, Signal etc. Thanks.

  • @dogu0101
    @dogu0101 6 місяців тому

    Hi Philipp. Do you have any content to show how to do it for twitter ?

  • @mklmk-vjhbj
    @mklmk-vjhbj 3 місяці тому +3

    'beginSignIn(BeginSignInRequest): Task' is deprecated. Deprecated in Java 💀💀💀

  • @blaupunkt1221
    @blaupunkt1221 2 місяці тому +3

    Hi Philipp! The latest 21.1.0 version of "com.google.android.gms:play-services-auth" deprecates most of your code. Apparently we are supposed to use the Jetpack CredentialManager instead now. Could you make a video about Firebase Google Sign-In using the CredentialManager? I had some difficulties with it. Thank you!

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

    I now have thousands of users in my Firebase database who are authenticated using their Firebase Google Sign-in UID. Since this method is deprecated, how should we migrate to Credential Manager in this case while we keep the current users ids?

  • @arthurmsiska3800
    @arthurmsiska3800 6 місяців тому

    Could you do same OAuth sign in but with Supabase?

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

    Can you implement it, but without jetpack?

  • @ahmedanalattack
    @ahmedanalattack 11 місяців тому

    Will this work in kmm compose for ios?

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

    Thanks, It helped alot. ❤

  • @user-me1ry6lg6d
    @user-me1ry6lg6d 5 місяців тому

    Hello sir , i have been following your android tutorials for long now and am grateful. I would like to ask something however , what is the difference between web client id and Server key with regards to this project ?

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

    Hello philipp thank for all those videos, can u please lean us how control music in notifications pannel like spotify

  • @matteoZattera
    @matteoZattera 2 місяці тому +1

    12:12 BeginSignInRequest is now deprecated, we have to use Credential Manager instead

  • @krishnamadke9085
    @krishnamadke9085 9 місяців тому

    very nice explaination !

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

    Just in time 🙏🏾🙏🏾

  • @walterdawidretzer465
    @walterdawidretzer465 7 місяців тому

    Great Video, its helps me a lot!!!!!!!!!!

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

    It doesn't look "Clean" putting so much logic in the MainActivity, is this really the best way to achieve it?

  • @sheikhbilalahmad2689
    @sheikhbilalahmad2689 3 місяці тому

    Thank you! Philipp the goat

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

    Wow thanks a lot ... Idk how you manage to do it but every single time I just need help on a topic it just appears in a couple of days 😂

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

    Thank you Philip

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

    not now!
    will be needing this next week!

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

    damn! thanks for content but why did you do that without layotu? I have an issue but cannot solve it because of it :(

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

    Why not use Destinations Compose? Is it not mainstream yet?

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

    Great, thanks 👍👍

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

    How does all the coroutine logic in the MainActivity at the end translate to the compose-destinations package for navigation? Are you supposed to just run all of those in your LoginScreen composable instead?

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

      Found anything useful?

  • @AmalShiwantha-n7b
    @AmalShiwantha-n7b 26 днів тому

    Can you share how to call Facebook login in compose

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

    Has anyone got this error "Caller not whitelisted to call this api"? I tried fixing it in so many ways but it didn't work. If someone has solution, please help me. Thank you!

  • @SuperSapna007
    @SuperSapna007 4 місяці тому

    I tried with your code its not working and not throwing any error. :(

  • @Tsukikof
    @Tsukikof 3 місяці тому

    Great job! Thanks a lot, it works perfectly. Can you make firebase sign in with email password also ?

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

    Don't know if there is some issue with the code or the API itself but what I observe is when I cancel the google sign in bootom sheet 3-4 times consecutively, the sheet never appears again. Hey @Philipp can you look into this?

    • @13_adityasharma74
      @13_adityasharma74 Рік тому +1

      it's a google play thing. If you cancel the login a few times it won't appear again for 24 hours or if it was triggered in an emulator u can just clear the google play data

  • @davidrichardroca5899
    @davidrichardroca5899 7 місяців тому

    Really Thanks for this Great Tutorial. Can you do an other Tutorial of using this authentication to call an Google API like Photos by exemple please. With the Google Dev console settings Pleaaasseee 😊

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

    Can you please make a video using Credential Manager APIs instead of One tap APIs (deprecated)?

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

    How to implement it without Compose?

  • @BlackSpaceCreation
    @BlackSpaceCreation 3 місяці тому

    Anyone else have problems with implementing this? I dont get the google sign in pop up

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

    hi can you make app change location

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

    Hei man, what is the "plugin theme" that you are using for your Android Studio?

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

      You can see his theme at 6:16

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

    next video I would like to see would be Notes app using firebase

  • @prarooptrivedi
    @prarooptrivedi 7 місяців тому

    can you provide same video for facebook sign in

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

    Need a tutorial on retrofit with jetpack compose

  • @JackSparrow-xd1vp
    @JackSparrow-xd1vp Рік тому

    Can i get your course in udemy?

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

    There is so much we writing outside the composable screens themselves now 🤔. Shit keeps changing.

  • @omarcode6245
    @omarcode6245 11 місяців тому +1

    Hola phillip como estas gran tutorial, porque no manejaste la logica en el viewmodel como en todos tus videos

  • @slyene6202
    @slyene6202 3 місяці тому

    Hi! What's the difference between LaunchedEffect key1 = true and key1 = Unit?

  • @John-qt6qk
    @John-qt6qk Рік тому

    Thanks

  • @thangnguyen8899
    @thangnguyen8899 7 місяців тому

    Nice

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

    Wouldn't it make sense to use an AuthenticationProvider interface with a Firebase concretion to be able to a) mock the provider and b) switch the provider to another one in the future?

  • @mr.chouhan_07
    @mr.chouhan_07 8 місяців тому

    brother can u make video also for Facebook Sign-In

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

    Heads up! When selecting your email for google auth you covered it up but then at 8:22 you go back to the screen and your email is front and center

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

      Yeah, i've noticed too. Hope no one tries to scam

  • @kyleangelogonzales3989
    @kyleangelogonzales3989 Рік тому +6

    Hey Philipp! Love your videos!
    I'm new to MVVM and Compose. Ive heard that it's not good to use context in viewModels so I would like to learn how to work around these scenarios. I also read that we should avoid using the AndroidViewModel class as it defeats the purpose of having a ViewModel in the first place.
    Could you make a video teaching us how to properly separate Android specific code from ViewModel's with MVVM and CLEAN practices?
    Given that a lot of the business logic lives in the ViewModel, how can we:
    1. Use android resources
    2. Make an object that requires an (activity?) context in response to a button click event
    3. Get permissions from button clicks ? With compose and MVVM?
    4. Launching an intent when a button is clicked
    I'm new to all of this, so a tutorial on this would really help me write cleaner and more robust code!

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

      There's no problem using application context in the ViewModel. The reason why they say not to use context in ViewModels is because you don't want to leak a VIEW context. Application context exists through the duration of the app.
      That's what the purpose of the AndroidViewModel is, it takes in an Application so you can rely on Application context.

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

    firebase to android jetpack compose download pdf in app please make video ..

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

    Dagger hilt? 😢😢😢😢

  • @superkobke
    @superkobke 7 місяців тому +1

    Damn, my SignIn button is not working!!!!

    • @ConspiracyCraftersStudio
      @ConspiracyCraftersStudio 4 місяці тому

      you probably did onClick = {onSignInClick} and you should onClick = onSignInClick

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

    Hey I am getting this error "unresolved reference: lifecycleScope"

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

      Use val coroutineScope = rememberCoroutineScope() instead

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

      @@moisesvalera3597 okay thanks 👍

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

    It's depricated please make a tutorial on the new way to sign in with google

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

    How did you know that we are working these days to add this feature in our new app? 🤔 Impossible 😂

  • @ffggi-qv5ey
    @ffggi-qv5ey 11 місяців тому

    Why writing tests is such an abstract concept. Does noone write tests?

    • @PhilippLackner
      @PhilippLackner  11 місяців тому +2

      What has that to do with the video?

  • @trado-dev
    @trado-dev 8 місяців тому

    33:01

  • @iamvahitkeskin
    @iamvahitkeskin 4 місяці тому

    23:58

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

    177th...Thanks Philipp. I'm looking at the bundle price and it is currently 359,00€. Is this in Euro?

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

      There's a € sign so is that really a question?

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

      @@stijndcl it is a question. Need to double check as there is a comma, Im not familiar with this currency. It might be in thousands. That is why Im asking

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

      @@jopadjr if it would be thousands then there would be three zeroes, not two.

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

      @@stijndcl Thanks. I actually checked it in the Australian dollar equivalent. And that comma is confusing as we only used it for thousands. No harm in asking

  • @Rafa-iy2ng
    @Rafa-iy2ng Рік тому

    Why not EASTER100? :)

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

      Don't try this plz

    • @Rafa-iy2ng
      @Rafa-iy2ng Рік тому

      @@PhilippLackner It says that someone already used it :( maybe next time...

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

    Firebase !!? you said from years ago you won't use firebase again :)

  • @royalanimations007
    @royalanimations007 11 місяців тому

    Hi Philipp , need your help ,,
    I am getting 16 similar errors for different libraries ... what should i do
    1. Dependency 'androidx.navigation:navigation-common:2.7.0' requires libraries and applications that
    depend on it to compile against version 34 or later of the
    Android APIs.
    :app is currently compiled against android-33.
    Also, the maximum recommended compile SDK version for Android Gradle
    plugin 8.1.0 is 33.
    Recommended action: Update this project's version of the Android Gradle
    plugin to one that supports 34, then update this project to use
    compileSdk of at least 34.

    • @bharathprakash
      @bharathprakash 11 місяців тому

      just change the navigation version to 2.6.0 or else you need to download android 14sdk

    • @royalanimations007
      @royalanimations007 11 місяців тому

      @@bharathprakash does it requires hedgehog canary build ? I downloaded SDK. 14 in giraffe, but error persists

    • @bharathprakash
      @bharathprakash 11 місяців тому

      @@royalanimations007 no I had same error I just changed the navigation version to 2.6.0