Authenticate Your Next.js Apps Using Firebase: Complete Guide

Поделиться
HTML-код
  • Опубликовано: 5 янв 2025

Комментарии • 93

  • @Rawailsakib
    @Rawailsakib 9 месяцев назад +4

    Rayan your best is that you always reply to your learners without hurting them this is your best then your skills

    • @coderyan
      @coderyan  9 месяцев назад +2

      Thank you!

    • @Rawailsakib
      @Rawailsakib 9 месяцев назад

      @@coderyan your welcome man!

  • @eugenebesedovsky
    @eugenebesedovsky 8 месяцев назад +23

    To prevent a home page to flash just use 'return router.push("...")' instead of 'router.push("...")'. Thus you won't see the home page if you're not signed in. Also can use 'loading' variable coming second from useAuthState hook to render some fallback component. So there won't be any need of adding session storage item.

  • @RheddrianBenekander
    @RheddrianBenekander 10 месяцев назад +7

    Thanks for sharing this guide!
    You made a comment about making errors toward the end of the video. I just came here to say that I was looking for this video, and there were a few available... but the other ones I looked at were guys that jump-cut through their mistakes, and they'd copy and paste all of their code so you wouldn't see them typing.
    Those videos are awful to follow along with. Yours is relatable. Keep doing it the way you're doing it! We're here because we're making mistakes too.

    • @coderyan
      @coderyan  10 месяцев назад +1

      Thank you for the kind words, very much so appreciated!

  • @PáseDigital
    @PáseDigital 2 месяца назад +2

    Thank you for the video, App Router and Firebase was a headache until now

    • @coderyan
      @coderyan  2 месяца назад

      Happy it helped!

  • @fengtaka
    @fengtaka 5 месяцев назад +1

    This is definitely one of the best tutorials I've watched
    Easy to understand and literally solved an issue I thought would take me hours in such a short time. Thanks!

    • @coderyan
      @coderyan  5 месяцев назад

      Happy to hear it! Thank you

  • @MrBlazzerBoy
    @MrBlazzerBoy Год назад +13

    Also please do one for protecting routes: show those pages only if user is logged in.

  • @yashraj4855
    @yashraj4855 Год назад +4

    Awesome guide! Got my thing working in one go. Thanks a lot 😊.

  • @ukaszStrzelecki
    @ukaszStrzelecki Год назад +9

    Hi Ryan! Thanks for this tutorial. Can you make full example how to use Firebase Auth also using SSR and proper session storage thru whole application? There is a lot of this kind of tutorials were you can find examples how to signin/login/signout but it ends at this step. Thanks a lot!

    • @ionutsandu5913
      @ionutsandu5913 11 месяцев назад +4

      I successfully managed to do what you're asking for my company but it was quite tricky. This weekend I will create a repo if you'd like so you can get some help from there.

    • @aro-aro-aro
      @aro-aro-aro 11 месяцев назад

      @@ionutsandu5913Hi! Can you please share your repo/GitHub username. I’m learning firebase Auth it would be great if you could share it. Thanks

    • @MikeBritton
      @MikeBritton 10 месяцев назад

      @@ionutsandu5913 Very kind of you, if the offer still stands.

    • @aro-aro-aro
      @aro-aro-aro 9 месяцев назад

      @@ionutsandu5913can you share the repo url? Thanks in advance

    • @emokiniovoaghogho7420
      @emokiniovoaghogho7420 5 месяцев назад

      ​@@ionutsandu5913hey, pls can you send me the repo link? I'm working on a project that is supposed to use those features and I have no idea how to go about it

  • @Growingmindsetalha
    @Growingmindsetalha Год назад +7

    it is not adding the user in the data base

  • @cohena100
    @cohena100 2 месяца назад

    when creating the app and when i choose Yes on Would you like to use `src/` directory then it doesn't work. any idea why?

  • @alexandergeorgesquire220
    @alexandergeorgesquire220 8 месяцев назад +3

    Hey thanks Ryan Just wondering... Why are you using .env for the config files? The docs say the cofnig data is safe to be on the front end?

  • @treasuredev
    @treasuredev Месяц назад

    Nice, but if you create a nextapi to handle functions from the backend, it logs users out after ah hour. I don't want to call my config from client side. I want to handle everything in next api functions

  • @juancabanas268
    @juancabanas268 8 месяцев назад

    How can I refresh the user idToken after expiration? How is that process? After 1 hour, the user is not retrieved and no refreshed id is gotten. Please, I'm really stuck in that process 🙏. I'm building a PWA with NextJS and I need the user to always be signed in

  • @Robert-gr1cl
    @Robert-gr1cl 3 месяца назад

    if i refresh the page on the home screen it logs me out
    (i did this exactly the same) why is that?

  • @phptempaltedf
    @phptempaltedf 9 месяцев назад +1

    it's full ClientSide when we use Firebase auth?

  • @Imraann0
    @Imraann0 5 месяцев назад

    Can you not handle the user logged in information with get server side props for the home component

  • @fluffsenpai
    @fluffsenpai 10 месяцев назад

    The home page still flashes when going to the original URL. if the page was to be protected its not.

  • @lucasrodrigues680
    @lucasrodrigues680 11 месяцев назад +1

    Thank you for the guide. It helped me a lot!
    The only issue that I had was the errors. The react-firebase-hook did not throw some of my errors automatically.
    I had to get the errors from the hook and then throw it manually.
    Something like this:
    const [signInWithEmailAndPassword, user, loading, error] = useSignInWithEmailAndPassword(auth)
    try {
    const res = await signInWithEmailAndPassword(data.email, data.password)
    if(error){
    throw new Error(error.message)
    }
    reset()
    router.push('/my-chats')
    }
    catch(err) {
    console.error(err)
    }

  • @isagive
    @isagive 9 месяцев назад +1

    Thank you brother.
    the userSession solution seems wrong - the useAuthState changes so maybe we need to wrap in a function and wait for it?
    i dont know but it still kicks out a lot of error after routing.
    In anycase, thank you for the hard work
    very helpfull tutorial

  • @mitaligupta8635
    @mitaligupta8635 9 месяцев назад

    I am getting an error of module not found in page.js file for config.js file for auth. But I have already made that file.

  • @aarondean1872
    @aarondean1872 10 месяцев назад

    How would you move the Auth logic into something like an Auth Context?

  • @tabmax22
    @tabmax22 6 месяцев назад

    should firebase env vars be added to vercel platform to a prod app as NEXT_PUBLIC_...?

  • @Robert-gr1cl
    @Robert-gr1cl 3 месяца назад

    beautiful tutorial, worked perfectly for me!

    • @coderyan
      @coderyan  3 месяца назад

      Happy to hear it!

  • @Vlada97my
    @Vlada97my 11 месяцев назад

    I have a question, how can i sing up users and set their first and last name?

  • @priyapandey8951
    @priyapandey8951 Год назад +1

    Can't we directly use the config js file for the storing values of those variables? Why are we using them as env variables? Is it some kind of convention to do so?

    • @nosrehcorporation
      @nosrehcorporation Год назад +3

      Safety, you dont want to expose those values in your regular packages

    • @priyapandey8951
      @priyapandey8951 Год назад +1

      @@nosrehcorporation ok thankyou sir

  • @TheJoyBoySSK
    @TheJoyBoySSK 4 месяца назад

    My problem is that there is no code written in SignIn.js file that checks the databse for users and then signs them in, it just creates a new user in signIn itself, removing the need for signup and leading to multiple entries of same users everytime they login

    • @andreschavez3929
      @andreschavez3929 2 месяца назад

      Thats wrong because you can only have one user with the same email in firebase auth

  • @brookt5725
    @brookt5725 9 месяцев назад +1

    Have you tried going to / without signing in it displays the content for a short while which is really bad thing

    • @coderyan
      @coderyan  9 месяцев назад +1

      Should have covered this in the video, but can be solved in several ways, one of which is by using some loading state

    • @brookt5725
      @brookt5725 9 месяцев назад

      @@coderyan Wouldn't that be redundant to do that on each page

    • @coderyan
      @coderyan  9 месяцев назад

      Wouldn’t need to do it at each page. You can do it higher up in the application (e.g in the root component)

  • @davidlintin
    @davidlintin 11 месяцев назад +5

    27:36 "I'm gunna change this to jsx because I like the Icon better" - also me.

    • @coderyan
      @coderyan  11 месяцев назад +1

      Haha glad you can relate

  • @janeeshafernando6830
    @janeeshafernando6830 11 месяцев назад +2

    Thankyou soo much. Its working 😍🥰

    • @coderyan
      @coderyan  11 месяцев назад

      Happy to hear it!

  • @alikawu7145
    @alikawu7145 6 месяцев назад

    Will this make all the components client components?

  • @Growingmindsetalha
    @Growingmindsetalha Год назад +5

    why is it giving the res undefined?

    • @Abhishek-f1q7m
      @Abhishek-f1q7m 28 дней назад

      use the correct gmail and its correct password

  • @proflead
    @proflead 4 месяца назад

    Thanks for the tutorial Rayan!

    • @coderyan
      @coderyan  4 месяца назад

      You’re welcome!

  • @gokulnaathb2627
    @gokulnaathb2627 11 месяцев назад +1

    Thank you so much, Ryan, this will help me.

    • @coderyan
      @coderyan  11 месяцев назад

      You’re welcome!

  • @darkside0094
    @darkside0094 9 месяцев назад

    thanks man, i've been following the official docs but kept on getting errors. Is "react-firebase-hooks" library a must in order to use firebase with next js?

  • @МишаАнискин-р6ш
    @МишаАнискин-р6ш Год назад

    Hi! Thank you for this video! How did you use async/await in client component? I have an error when try it

  • @pedromendoza8148
    @pedromendoza8148 8 месяцев назад

    Is this going to make all the app a client component?

  • @M7ilan
    @M7ilan 11 месяцев назад +1

    you’re so good can you make a same tutorial but showing user data? or maybe username system?

  • @Fluttydev
    @Fluttydev 11 месяцев назад

    is this secured to store use in session storage ?

  • @dortcel5550
    @dortcel5550 3 месяца назад

    i could kiss you right now!!!!! this is the best tutorial for a beginner like me. Love you so much brother!! RESPECT!!

    • @coderyan
      @coderyan  3 месяца назад +1

      Happy it helped!

    • @dortcel5550
      @dortcel5550 3 месяца назад

      @@coderyan also... loved your commentary it was hilarious 😂

  • @ahmedabdel-aal8404
    @ahmedabdel-aal8404 Год назад +1

    great video helped me a lot, keep it up

    • @coderyan
      @coderyan  Год назад

      Happy it helped you out

  • @omarhabash8355
    @omarhabash8355 Месяц назад

    counsel vs console ??

  • @marioperez6180
    @marioperez6180 11 месяцев назад +2

    The thing is you are doing it only in client side

    • @vyxian00
      @vyxian00 4 месяца назад

      yes, this is okay only if you're using firebase as database since firebase will handle backend protection via security rules.

  • @solorashed
    @solorashed Год назад +2

    I don't get the point, If you make all page use client then why you are using next?

    • @scor32k
      @scor32k Год назад +1

      ig he did this for tutorial purpose, we can rectify the code.

    • @ionutsandu5913
      @ionutsandu5913 11 месяцев назад +4

      @@scor32k Not really. All firebase hooks need client to run. Having a SSR auth with firebase is quite tricky.

    • @OsamaEhsan-j6w
      @OsamaEhsan-j6w 10 месяцев назад

      @@ionutsandu5913 you're right, I don't understand why everyone is making video with NextJS title but just handling the issues same as simple React.

  • @CptJuke
    @CptJuke 10 месяцев назад

    hey man great video! It gives me an error ''sessionStorage is not defined" when i try to deploy.
    Any idea how to solve it?

    • @shreyashraj
      @shreyashraj 10 месяцев назад

      'use client';
      add this line in top of your page

    • @CptJuke
      @CptJuke 10 месяцев назад

      @@shreyashraj its already in a client side component :(

    • @shreyashraj
      @shreyashraj 10 месяцев назад

      @@CptJuke maybe you forgot to import sessionStorage

    • @juanpabloarroyochavez7311
      @juanpabloarroyochavez7311 8 месяцев назад

      Hello, I have the same problem, could you solve it?

    • @CptJuke
      @CptJuke 8 месяцев назад

      @@juanpabloarroyochavez7311 sadly no 😞

  • @StatsOverStyles
    @StatsOverStyles 7 месяцев назад

    that was awesome and so easy to use

    • @coderyan
      @coderyan  7 месяцев назад

      Happy it helped!

  • @Minu_Shalom
    @Minu_Shalom 6 месяцев назад +1

    Hi Ryan! Maybe I'm wrong, but as I know NEXT_PUBLIC will be included in the client-side JavaScript bundle, making them accessible to anyone who can inspect the website's source code.

  • @iancarr3923
    @iancarr3923 10 месяцев назад

    Excellent video as usual. Just one plea from littl ol' England on presentation. Please try to avoid saying "go ahead and" too often. Thanks.

  • @Route-20
    @Route-20 5 месяцев назад

    Thank you.

  • @Ilovemonkey123
    @Ilovemonkey123 7 месяцев назад

    I love you

  • @jabedalamakash8558
    @jabedalamakash8558 Год назад +1

    thanks

  • @Viviko
    @Viviko 10 месяцев назад

    … Oh. So I have to use hooks and shit… alright. That makes my life easier. I’m used to calling some API instead of FireBase and then storing JWTs. So this is kinda weird. And I’m used to working in SolidJS or Svelte. So this is weird for me.