melboudali / React-Shop

Discover the latest fashion trends with React-Shop. Shop the new collection of clothing, footwear, accessories, beauty products, and more. https://react-shop2.herokuapp.com/
MIT License
5 stars 0 forks source link

Example : firebase database #10

Open starli-ai opened 2 years ago

starli-ai commented 2 years ago

Excellent and strong project I have a problem building a database of categories and products Please give me an outlet or tips if possible

melboudali commented 2 years ago

Firebase Installation

  1. Create Firebase project.
  2. Go to Project settings > General > Your apps, then click Add app.
  3. Register the web app and install Firebase SDK:
    npm install firebase
  4. Create .env.local file and add these env vars:
    REACT_APP_APIKEY= '...'
    REACT_APP_AUTHDOMAIN= '...'
    REACT_APP_DATABASEURL= '...'
    REACT_APP_PROJECTID= '...'
    REACT_APP_STORAGEBUCKET= '...'
    REACT_APP_MESSAGINGSENDERID= '...'
    REACT_APP_APPID= '...'
    REACT_APP_MESUREMENTID= '...'

    If you don't know where to find the values you can go to Project settings > General > Your apps.

Authentication

  1. Go to Authentication > Sign-in method > Sign-in providers, then add and enable these providers:
    • Email/Password
    • Google
    • Facebook
    • GitHub
  2. Got to Authorized domains then add localhost and all the other domains.

Cloud Firestore

  1. Go to Rules and add these:
    // Allow read/write access on all documents to any user signed in to the application
    service cloud.firestore {
    match /databases/{database}/documents {
    match /users/{userId}{
        allow get, create, update: if request.auth != null && request.auth.uid == userId;
    }
    match /Collections/{collection}{
        allow read;
    }  }
    }
  2. Create two Collection:
    • users Create a new collection with the id users.
    • Collections Create a new collection with the id Collections, every collection has two fields:
      title: string;
      items: {
      id: number;
      name: string; 
      description: string;
      firstImageUrl: string;
      secondImageUrl :string;
      thirdImageUrl: string
      fourthImageUrl: string;
      colors: string[]; 
      size: number[]; 
      newPrice: number;
      oldPrice: number;
      orders: number;
      rate: number;
      }[];
starli-ai commented 2 years ago

🖤🤝