AuthPickerView sheet loses AuthService environment on Mac Catalyst

Open
#1,397 1 comment 0 reactions 1 assignee View on GitHub

@demolaf is already working on this.

Since Sep 18, 2026.

Assessment

This issue has not been assessed yet.

Description

auth type: bug
Environment
  • Swift, using FirebaseAuthSwiftUI, FirebaseAppleSwiftUI, and FirebaseGoogleSwiftUI through Swift Package Manager
  • FirebaseUI 16.1.0
  • Firebase 11.12.0; GoogleSignIn 7.1.0
  • Mac Catalyst on macOS 26.6.2, Xcode 26.6 (17F113), SDK 26.5, Swift 6.3.3
  • Comparison run: iPhone 17 Pro Simulator, iOS 26.5
Reproduction

In a UIKit-hosted SwiftUI view, use the documented stock picker pattern:

AuthPickerView {
  Text("Minimal FirebaseUI host")
}
.environment(authService)

Configure authService with Apple and Google providers, attach the hosting controller to a window, then set authService.isPresented = true.

Our hosted XCTest reproduces a fatal error on Catalyst while presenting the sheet:

No Observable object of type AuthService found.
A View.environmentObject(_:) for AuthService may be missing as an ancestor of this view.

The same stock-picker presentation test passes on iOS Simulator. The Catalyst failure also reproduces with a plain SwiftUI sheet containing an @Environment(AuthService.self) reader, suggesting a sheet environment propagation problem rather than provider configuration. Waiting until the presenting content is rendered did not avoid the crash.

Proposed fix

Explicitly inject .environment(authService) into AuthPickerView's primary sheet content, after .mfaHandler(). The nested legacy recovery sheet already injects it explicitly.

Both a temporary prototype and the actual patched package passed presentation, dismissal, and simulated successful-authentication handling on iOS Simulator and Catalyst. The consuming app ran six focused hosted tests per platform with zero failures. Real Apple/Google OAuth and the FirebaseUI repository's full test suites were not exercised. I am submitting the corresponding patch.

Dominant language
Swift
Stars
1.6k
Forks
495
Avg merge
1d 8h
Merged PRs (30d)
5

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.