Skip to content

[iOS] sendEmailVerification fails to send email when ActionCodeSettings URL is provided - works on Android #8688

@nustony

Description

@nustony

Issue

I'm experiencing an issue with sendEmailVerification on iOS where emails are not sent when ActionCodeSettings with a URL is provided, while the same code works perfectly on Android.

Current Behavior

  • iOS: When ActionCodeSettings with url parameter is provided → Email is NOT sent
  • iOS: When ActionCodeSettings is omitted → Email is sent successfully (but without continue button)
  • Android: Works perfectly with ActionCodeSettings and URL parameter

Expected Behavior

Email verification should be sent on both iOS and Android when ActionCodeSettings with URL is provided.

Code Sample

import { sendEmailVerification } from '@react-native-firebase/auth';

const actionCodeSettings = {
  url: 'https://xxx.xxx/email-verification',
  handleCodeInApp: true,
  iOS: {
    bundleId: 'com.xxx.app'
  },
  android: {
    packageName: 'com.xxx.appl',
    installApp: true,
    minimumVersion: '12'
  }
};

// This works on Android but fails silently on iOS (no email sent)
await sendEmailVerification(user, actionCodeSettings);

// This works on iOS but email has no continue button
await sendEmailVerification(user);

Configuration

Info.plist (iOS):

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleTypeRole</key>
    <string>Editor</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>https://xxx.app</string>
    </array>
  </dict>
</array>

<key>com.apple.developer.associated-domains</key>
<array>
  <string>applinks:xxx.xxx</string>
</array>

Firebase Console:

  • Domain xxx.xxx is added to Authorized domains
  • iOS app is properly configured with correct Bundle ID

Environment

  • Platform: iOS (tested on iOS simulator and physical device)
  • react-native-firebase version: [your version]
  • React Native version: [your version]
  • iOS version: [your iOS version]
  • Firebase SDK version: [your version]

Additional Notes

This appears to be the same issue as #3364 from 2020, but that issue was marked as stale. The problem still persists in current versions.

Question

Is there a proper solution to make sendEmailVerification work with ActionCodeSettings URL on iOS, or is the platform-specific workaround the only viable solution?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions