UNPKG

@enclavemoney/enclave-wallet-sdk

Version:

A simple enclave wallet SDK for React applications

122 lines (85 loc) 3.78 kB
# Firebase Setup Guide for Gmail Login This guide will help you set up Firebase Authentication for Gmail login in the Wallet SDK. ## Prerequisites 1. A Google account 2. Access to [Firebase Console](https://console.firebase.google.com/) ## Setup Steps ### 1. Create a Firebase Project 1. Go to [Firebase Console](https://console.firebase.google.com/) 2. Click "Create a project" or select an existing project 3. Follow the setup wizard to create your project ### 2. Enable Authentication 1. In your Firebase project, go to **Authentication** in the left sidebar 2. Click on the **Sign-in method** tab 3. Click on **Google** provider 4. Toggle the **Enable** switch 5. Add your project's authorized domains if needed 6. Click **Save** ### 3. Get Firebase Configuration 1. Go to **Project Settings** (gear icon) > **General** 2. Scroll down to "Your apps" section 3. Click **Add app** and choose **Web** (</> icon) 4. Register your app with a nickname 5. Copy the Firebase configuration object ### 4. Configure Environment Variables Since this is an npm package, you'll need to configure Firebase using environment variables in your consuming application. Create a `.env` file in your consuming application's root directory: ```env REACT_APP_FIREBASE_API_KEY=your-api-key-here REACT_APP_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com REACT_APP_FIREBASE_PROJECT_ID=your-project-id REACT_APP_FIREBASE_STORAGE_BUCKET=your-project.appspot.com REACT_APP_FIREBASE_MESSAGING_SENDER_ID=123456789 REACT_APP_FIREBASE_APP_ID=your-app-id ``` ### 5. Install Dependencies Make sure Firebase is installed in your project: ```bash npm install firebase ``` ### 6. Configure Authorized Domains 1. In Firebase Console, go to **Authentication** > **Settings** > **Authorized domains** 2. Add your domain(s) where the wallet will be used: - `localhost` (for development) - Your production domain - Any other domains where the wallet will be embedded ## Usage ### Basic Setup ```javascript import { WalletProvider } from "@enclavemoney/enclave-wallet-sdk"; function App() { return ( <WalletProvider sdkKey="your-enclave-sdk-key"> {/* Your app components */} </WalletProvider> ); } ``` ### How it Works Once your Firebase configuration is set up via environment variables, users can click the "Continue with Google" button to authenticate using their Gmail account. The authentication will: 1. Open a popup for Google sign-in 2. Handle the authentication flow 3. Return user information (email, name, profile picture) 4. Integrate with the existing wallet session management ## Troubleshooting ### Common Issues 1. **Popup blocked**: Ensure popups are allowed for your domain 2. **Domain not authorized**: Add your domain to Firebase authorized domains 3. **API key invalid**: Double-check your environment variables 4. **Google provider not enabled**: Ensure Google authentication is enabled in Firebase Console ### Error Messages - `auth/popup-closed-by-user`: User closed the popup before completing sign-in - `auth/popup-blocked`: Browser blocked the popup window - `auth/network-request-failed`: Network connectivity issues - `auth/cancelled-popup-request`: Multiple popup requests cancelled previous one ## Security Notes - Never commit your `.env` file to version control - Use different Firebase projects for development and production - Regularly rotate your API keys - Monitor authentication usage in Firebase Console - Restrict your Firebase API keys to specific domains/applications in production ## Support For additional help: - [Firebase Auth Documentation](https://firebase.google.com/docs/auth) - [Firebase Console](https://console.firebase.google.com/) - [Google Identity Platform](https://developers.google.com/identity)