Handling user roles is not that simple on Next.js using Firebase.

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ส.ค. 2024
  • Here's a super easy guide on how to handle users and user roles in a Next.js app using Firebase. This video covers a bunch of cool stuff, like setting up the project, creating pages, adding a navbar, getting items from an API, fetching items from Firestore as an admin, setting up sign-in with Google, creating user roles, routing pages based on roles, and fetching data based on roles. Oh, and it also shows you how to use Firebase emulators for testing locally. Plus, it gives you code snippets and step-by-step instructions for everything. Enjoy!
    Code: miguelvieira.io/projects/RW6r...
    Website: miguelvieira.io
    Facebook: / miguelvieiracode
    Instagram: / miguelvieiracode
    Twitter: / miguelvieiradev
    TikTok: / uc7fny1_f5yetq--egioprda
    LinkedIn: / miguelvieiracode
    00:00 Intro
    01:17 Setup
    06:20 Create pages
    07:57 Create a navbar
    09:46 Fetch items from API
    14:08 Fetch items from firestore
    24:01 Sign in
    31:45 User roles
    39:13 Role based page routing
    45:58 Role based data fetching
    51:23 Conclusion
  • แนวปฏิบัติและการใช้ชีวิต

ความคิดเห็น • 36

  • @user-ub8ic8dj3m
    @user-ub8ic8dj3m 4 หลายเดือนก่อน +4

    You have no idea how much I had to browse to find this. THANK YOU!

  • @evenngmusic8868
    @evenngmusic8868 6 หลายเดือนก่อน +7

    I d like more of firebase+ next.js videos!!

  • @noormuhammad888
    @noormuhammad888 4 หลายเดือนก่อน

    It took me a while to grasp the concepts. Very well job Miguel.

  • @teetanrobotics5363
    @teetanrobotics5363 8 หลายเดือนก่อน

    Thank you so much, Miguel Vieira, for the incredibly clear and thorough explanation in this video! Your expertise made a complex topic like handling user roles in Next.js using Firebase seem much more manageable. Your effort in breaking down the concepts and providing practical examples is truly appreciated. It's evident that you put a lot of thought into making the content accessible for viewers like me. Kudos to your excellent teaching style and the valuable insights you shared. Looking forward to more tutorials from you!

  • @hiper2d
    @hiper2d หลายเดือนก่อน

    This is a super helpful video. Next.js and Firebase don't have a good tutorial to understand how to integrate them together. All the information is in doc but it is very hard to find it when doing this all for the first time. The idea of creating client.ts and server.ts files to distinguish client-side and server-side configs is great.

  • @MikeBritton
    @MikeBritton 5 หลายเดือนก่อน

    Thanks for sharing this. It's helped me tremendously.

  • @Spike_104
    @Spike_104 หลายเดือนก่อน

    I can't thank you enough man 🙏🙏🙏

  • @hiraneranda4604
    @hiraneranda4604 3 หลายเดือนก่อน

    awesome content. Thanks man ❤❤

  • @cwu202
    @cwu202 3 หลายเดือนก่อน

    well explained and useful, thanks sir

  • @AmitDiggaoo7
    @AmitDiggaoo7 5 หลายเดือนก่อน +1

    Thanks. Saw other videos but they were doing things on the client side. One question related to nextjs. Is it okay copy the firebase/functions folder inside nextjs. Like can it be bundled to the frontend and increase security risks or bundle size?

  • @edit_Pro_1
    @edit_Pro_1 8 หลายเดือนก่อน +1

    Thinks man

  • @emanuelc1025
    @emanuelc1025 5 หลายเดือนก่อน +1

    THANKS.. I waste a lot of time with next auth + credentials.. and was a madness..

  • @artbrare
    @artbrare 5 หลายเดือนก่อน

    Hi, How can I implement this but still be able to use firestore realtime updates in my client components

  • @animeshorts8404
    @animeshorts8404 8 หลายเดือนก่อน +1

    Thanks.
    Can you do one with Prisma and mongoDB where the main admin can promote the users to moderator or admin

  • @josephsam2145
    @josephsam2145 26 วันที่ผ่านมา

    I am stuck here 'NEXT_PUBLIC_APP_ENV' is not recognized as an internal or external command,
    operable program or batch file. when I change the scripts.dev in package.json to "dev": "NEXT_PUBLIC_APP_ENV='emulator' next dev",

  • @kushailsingh8400
    @kushailsingh8400 2 หลายเดือนก่อน

    HOW CAN WE DO THIS FOR SERVER ACTIONS?

  • @srubio604
    @srubio604 4 หลายเดือนก่อน

    what happens with the firebase rules? i need that.

  • @Pierrot24382
    @Pierrot24382 6 หลายเดือนก่อน

    Thank you Miguel, this is very helpful! Is this the safest way to handle auth with Firebase?

    • @eltrolado5764
      @eltrolado5764 5 หลายเดือนก่อน +1

      safest and easier next-auth but the documentation is crap and they changed many things bewteen v3 and v4 and v4 is poorly documented

  • @davidlintin
    @davidlintin 5 หลายเดือนก่อน

    Hi Miguel, great tutorial. I just have a question (newish to next.js) when you wrap the children with the AuthProvider (which is client component) in the Root Layout doesn’t that make the whole app client component? From what I understand any children of client component become client component?

    • @amosdaniel237
      @amosdaniel237 4 หลายเดือนก่อน +1

      I was looking for this comment😢
      I had the same thoughts.

    • @noormuhammad888
      @noormuhammad888 4 หลายเดือนก่อน +2

      No it doesn’t . Only the component where you use it becomes a client component. The way provider works, it takes a children props in the root architecture and clients component on the other-hand are assigned not based on the architecture of your project rather on where it is being used.

    • @noormuhammad888
      @noormuhammad888 4 หลายเดือนก่อน

      @@amosdaniel237 No it doesn’t . Only the component where you use it becomes a client component. The way provider works, it takes a children props in the root architecture and clients component on the other-hand are assigned not based on the architecture of your project rather on where it is being used.

  • @gilbertonuzuruike1735
    @gilbertonuzuruike1735 2 หลายเดือนก่อน

    Is it possible to use this approach to make calls to 'Callable' functions created in the Firebase functions code

  • @MarcosMaganaWisdomica
    @MarcosMaganaWisdomica 3 หลายเดือนก่อน

    Hola Miguel! Gracias por tu contenido. Una pregunta, ¿Cómo puedo utilizar el simulador de Firebase si mis "Environmental Variables" no son reconocidas. Sigo obteniendo este error donde "NEXT_PUBLIC_APP_ENV='emulator'", (no es un comando externo o interno deconocido) ya intenté todo pero no funciona... agradecería enormemente tu ayuda

    • @mogo6798
      @mogo6798 3 หลายเดือนก่อน +1

      try script this way
      "dev": "set NEXT_PUBLIC_APP_ENV=emulator&& next dev",

  • @emanuelc1025
    @emanuelc1025 5 หลายเดือนก่อน

    Role are based on email string here! But, could be bettter to have a dinamic way to set if is pro or admin.

    • @davidlintin
      @davidlintin 5 หลายเดือนก่อน

      You can implement the same for pro as admin using custom auth claims.

  • @benjaoliva3383
    @benjaoliva3383 4 หลายเดือนก่อน

    Isn't using the Auth provider as 'use clien' makes all the children pages client side also ?

    • @babatundetaiwo5184
      @babatundetaiwo5184 4 หลายเดือนก่อน +1

      No it doesn’t . Only the component where you use it becomes a client component. The way provider works, it takes a children props in the root architecture and clients component on the other-hand are assigned not based on the architecture of your project rather on where it is being used.

    • @benjaoliva3383
      @benjaoliva3383 4 หลายเดือนก่อน

      @@babatundetaiwo5184 yeah, tried my self doing a React provider and is as you mentioned. Thanks!

  • @ManishShrestha-yz1ye
    @ManishShrestha-yz1ye 3 หลายเดือนก่อน

    Can you please create a video on integrating Stripe to grant access to our pro features

    • @miguelvieiracode
      @miguelvieiracode  2 หลายเดือนก่อน

      You can check an example on my netflix’s clone video

    • @gibber1sh-c6w
      @gibber1sh-c6w 2 หลายเดือนก่อน

      @@miguelvieiracode man, create a SaaS boilerplate with Next.js 14, Firestore/Firebase Auth, Stripe and some Email sending service and I'll buy it

  • @evenngmusic8868
    @evenngmusic8868 6 หลายเดือนก่อน +1

    Jesus Thank you