Skip to the content.

BPVA Calendar App - Changelog

Account Linking Implementation (October 2025)

✅ Completed Features

Manual Account Linking System

Authentication Flow

Firestore Security Rules

🗑️ Removed Features

Debug/Test Code (No Longer Needed)

Obsolete Documentation

📝 Updated Documentation

Kept & Updated

🔧 Technical Changes

Code Modifications

  1. auth_service.dart
    • Added AccountLinkingService import
    • Replaced Firebase linkWithCredential() with manual linking
    • Updated unlinkAccount() to use manual unlinking
    • Added Firestore data loading in loadUserProfile() and refreshUserProfile()
    • Removed test/debug methods
  2. firestore.rules
    • Added account_links collection rules
    • Added users/{userId}/linkedAccounts subcollection support (not used, but safe)
    • Fixed field name from primaryUid to primaryFirebaseUid
  3. admin_my_profile_screen.dart
    • Removed test/debug UI buttons
    • Removed test dialog methods
    • Kept only production linking functionality

🎯 Key Benefits

  1. Reliability: Manual linking via Firestore avoids Firebase SDK bugs
  2. Flexibility: Emails don’t need to match between Google and Apple accounts
  3. Privacy: Supports Apple’s “Hide My Email” feature
  4. Compliance: Meets App Store requirements for Apple Sign-In
  5. Maintainability: Clean, well-documented implementation

📱 User Experience

🔐 Security


Status: Production-ready ✅
Tested: iPad (iOS 18.7), Manual linking works perfectly
Deployed: Firestore rules updated and deployed