Dominic's Tasks - Login Error Troubleshooting

Date Reported: January 15, 2026 Error Message: "Access Denied - Please sign in with an authorized Google account" Status: Needs Resolution

---

Problem Description

Users attempting to log in to https://dominicstasks.pages.dev are receiving an "Access Denied" error message with the text "Please sign in with an authorized Google account."

Root Cause

The issue is NOT with the email addresses or user accounts. The problem is that the deployed domain dominicstasks.pages.dev has not been added to the Firebase project's Authorized Domains list.

When Google OAuth (Google Sign-In) is used, Firebase checks if the domain requesting authentication is in the authorized list. If the domain is not authorized, Firebase blocks the OAuth flow, which causes the authentication to fail with a generic error message.

Solution

Step 1: Access Firebase Console

  • Go to: https://console.firebase.google.com/
  • Log in with the Google account that has access to the smartpantry-66c66 project
  • - This should be the account associated with the credentials in /workspace/dev/credentials.md

    Step 2: Navigate to Authentication Settings

  • In the Firebase Console, select the project: smartpantry-66c66
  • Click on Authentication in the left sidebar
  • Click on the Settings tab (gear icon)
  • Scroll down to the Authorized domains section
  • Step 3: Add the New Domain

  • In the "Authorized domains" list, you should see domains like:
  • - localhost (for development) - Your existing domains

  • Click Add domain
  • Enter the new domain:
  •    dominicstasks.pages.dev
       
  • Click Add
  • Step 4: Verify the Domain

    The domain should now appear in the Authorized domains list:

  • ✅ dominicstasks.pages.dev
  • Step 5: Test the Login

  • Go to https://dominicstasks.pages.dev
  • Try logging in with dominicgiles691@gmail.com
  • The login should now work successfully
  • ---

    Alternative Solutions

    If You Don't Have Access to Firebase Console

    If you don't have access to the Firebase Console with the smartpantry-66c66 project, you have two options:

    #### Option 1: Contact the Account Owner

  • Ask the person who created the smartpantry-66c66 Firebase project
  • Provide them with this troubleshooting document
  • Ask them to add dominicstasks.pages.dev to the authorized domains
  • #### Option 2: Create a New Firebase Project If you prefer to have full control:

  • Create a new Firebase project at https://console.firebase.google.com/
  • Enable Authentication with Google Sign-In
  • Add the three authorized emails:
  • - dominicgiles691@gmail.com - derrickmg.admin@gmail.com - brendamgiles@gmail.com
  • Add dominicstasks.pages.dev to authorized domains
  • Update the credentials in src/services/firebase.ts with the new project details
  • Temporary Workaround (Development)

    For testing purposes, you can run the application locally:

    cd /workspace/dominicstasks
    npm run dev
    

    This will start a local development server at http://localhost:5173, which is automatically authorized (localhost is always in the authorized domains list).

    ---

    Firebase Configuration Checklist

    After adding the domain, ensure your Firebase project has the following configured:

    Authentication

  • ✅ Google Sign-In provider enabled
  • ✅ Authorized domains include:
  • - localhost - dominicstasks.pages.dev - Any other domains you want to deploy to

    Firestore Database

  • ✅ Firestore database enabled
  • ✅ Security rules configured (see below)
  • Security Rules

    Your Firestore security rules should include:

    // Authorized emails
    const AUTHORIZED_EMAILS = [
      'dominicgiles691@gmail.com',
      'derrickmg.admin@gmail.com',
      'brendamgiles@gmail.com',
    ];

    const PARENT_EMAILS = [ 'derrickmg.admin@gmail.com', 'brendamgiles@gmail.com', ];

    // Helper function to check if user is parent function isParent(email) { return PARENT_EMAILS.includes(email); }

    // Rules for tasks collection match /tasks/{taskId} { allow read, write: if request.auth != null && request.auth.token.email in AUTHORIZED_EMAILS; }

    // Rules for family messages match /family_messages/{messageId} { allow read, write: if request.auth != null && request.auth.token.email in AUTHORIZED_EMAILS; }

    // Rules for private parent messages (only parents) match /private_messages/{messageId} { allow read, write: if request.auth != null && isParent(request.auth.token.email); }

    match /private_conversations/{convId} { allow read, write: if request.auth != null && isParent(request.auth.token.email); }

    // Rules for resources match /resources/{resourceId} { allow read: if request.auth != null && request.auth.token.email in AUTHORIZED_EMAILS; allow write: if request.auth != null && isParent(request.auth.token.email); }

    ---

    Testing the Fix

    Expected Behavior After Fix

  • User visits: https://dominicstasks.pages.dev
  • Login Screen: Shows "Continue with Google" button
  • Google OAuth: Popup appears for Google Sign-In
  • Success: User is redirected to the main Tasks page
  • Navigation: Sidebar shows appropriate options based on role:
  • - Dominic: Tasks, Calendar, Chat, Resources, History - Parents: Tasks, Calendar, Chat, Parent Chat, Resources, History

    Test Accounts

    Use these accounts for testing:

    RoleEmailFeatures

    Studentdominicgiles691@gmail.comAll task features, no Parent Chat Parent 1derrickmg.admin@gmail.comAll features + Parent Chat Parent 2brendamgiles@gmail.comAll features + Parent Chat

    ---

    Common Login Issues

    Issue 1: "Access Denied" (Current Issue)

    Cause: Domain not in Firebase authorized domains Solution: Add dominicstasks.pages.dev to Firebase Console

    Issue 2: "Error signing in. Please try again."

    Cause: OAuth popup blocked or cancelled Solution:
  • Allow popups for the site
  • Disable ad blockers temporarily
  • Try incognito/private browsing mode
  • Issue 3: Login works but shows wrong user

    Cause: Cached Google account Solution:
  • Sign out of Google accounts in browser
  • Clear browser cache
  • Try in incognito mode
  • Issue 4: Login shows "You are not authorized"

    Cause: Email not in authorized list Solution: Verify email is in AUTHORIZED_EMAILS in src/services/firebase.ts

    ---

    If Problems Persist

    Check Console Logs

    Open browser developer tools (F12) and check the Console tab for error messages. Common errors to look for:

  • Firebase Auth Error: auth/unauthorized-domain
  • - Confirms domain authorization issue

  • CORS Error: Indicates popup blocking
  • Network Error: Indicates connectivity issues
  • Firebase Debug Mode

    Enable Firebase auth debugging:

    // In src/services/firebase.ts, add:
    import { setLogLevel } from 'firebase/app';

    setLogLevel('debug');

    This will output detailed auth logs to the browser console.

    ---

    Document Information

  • Troubleshooting Version: 1.0
  • Created: January 15, 2026
  • Related Documents:
  • - /workspace/dev/credentials.md - Firebase credentials - /workspace/dev/IMPLEMENTATION_PLAN.md - Technical specifications - /workspace/dev/roadmap/ROADMAP.md - Project roadmap - /workspace/dev/changelog/CHANGELOG.md - Change history

    ---

    Next Steps

  • ✅ Add dominicstasks.pages.dev to Firebase Authorized Domains
  • ✅ Test login with dominicgiles691@gmail.com
  • ✅ Test login with parent accounts
  • ⏳ Verify all features work correctly
  • ⏳ Gather feedback from family members
  • ---

    This document is part of the Dev folder documentation for Dominic's Tasks & Family Hub.