Skip to content

Add User.providerData and sendEmailVerification(beforeUpdatingEmail:) - #100

Merged
marcprux merged 1 commit into
skiptools:mainfrom
vincentborko:pr/auth-user-api
Jul 25, 2026
Merged

Add User.providerData and sendEmailVerification(beforeUpdatingEmail:)#100
marcprux merged 1 commit into
skiptools:mainfrom
vincentborko:pr/auth-user-api

Conversation

@vincentborko

Copy link
Copy Markdown
Contributor

Two FirebaseUser APIs that iOS callers rely on have no Android counterpart, so cross-platform code has to fall back to platformValue — which is opaque in the SKIP_BRIDGE pass and therefore unreachable from a natively compiled app.

  • User.providerData: [UserInfo] wraps FirebaseUser.getProviderData(). The new UserInfo class exposes providerID/uid/displayName/email/phoneNumber/photoURL. Android's synthetic "firebase" provider entry is filtered out so providerData.first?.providerID means the same thing on both platforms.
  • User.sendEmailVerification(beforeUpdatingEmail:) wraps FirebaseUser.verifyBeforeUpdateEmail(), matching the iOS selector.

Verification

  • swift build --build-tests is green, i.e. the two new API shapes in SkipFirebaseAuthTests compile against the real Apple FirebaseAuth SDK — that is what pins the signatures to iOS.
  • Exercised on an Android 16 emulator against a real Firebase project: reading the sign-in provider of a password account, and a full change-email round trip (re-authenticate, then send the verification link to the new address).

…atingEmail:)

Two FirebaseUser APIs that iOS callers rely on had no Android counterpart, so
cross-platform code had to fall back to `platformValue` — which is opaque in
the SKIP_BRIDGE pass and therefore unreachable from a natively compiled app.

- `User.providerData: [UserInfo]` wraps `FirebaseUser.getProviderData()`. The
  new `UserInfo` class exposes providerID/uid/displayName/email/phoneNumber/
  photoURL. Android's synthetic "firebase" provider entry is filtered out so
  `providerData.first?.providerID` means the same thing on both platforms.
- `User.sendEmailVerification(beforeUpdatingEmail:)` wraps
  `FirebaseUser.verifyBeforeUpdateEmail()`, matching the iOS selector.

Both are exercised for shape in SkipFirebaseAuthTests, which compiles against
the real FirebaseAuth on iOS.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MxxbQFDQyDkNvFMZaV5Aij
@cla-bot cla-bot Bot added the cla-signed label Jul 24, 2026
@marcprux
marcprux merged commit 0040af7 into skiptools:main Jul 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants