Skip to content

Confusing and broken behavior of interactive dismissal on iOS 13 #789

@borut-t

Description

@borut-t

Step 1: Are you in the right place?

I am 🙄

Step 2: Describe your environment

  • Objective C or Swift: Swift
  • iOS version: 13.1.2
  • Firebase SDK version: 6.9
  • FirebaseUI version: 8.2
  • CocoaPods Version: 1.8.3

Step 3: Describe the problem:

Steps to reproduce:

Open login UI with only password method.

Observed Results:

When setting shouldHideCancelButton = true on Auth instance, cancel button is hidden but the interactive dismiss is still possible.

Expected Results:

Interactive dismiss should be disabled in this case. It looks like you've only applied interactive dismiss handling on the login method selection screen, but not on a particular screen. I'm not sure about the sdk implementation for this case, but it doesn't work 🤷‍♂

Another interesting thing is if this would work as expected (interactive dismissal disabled), it's really confusing and broken. When the screen is presented, the user cannot cancel the flow if he decides so. I think you should not tie interactive dismissal to the cancel button.
I should be able to:

  1. disable interactive dismissal but still be able to cancel the flow or
  2. disable cancel and enable interactive dismissal, but interactive dismiss should be handled as cancel event

Relevant Code:

This is a snippet from my code to present email/password login UI:

func presentLoginUI(from vc: UIViewController) {
  let authUi = Auth.auth()
  authUi.tosurl = URL(string: Constants.Legal.tosUrl)
  authUi.delegate = self
  authUi.shouldHideCancelButton = true
  
  let emailAuth = FUIEmailAuth(authAuthUI: authUi, signInMethod: "password", forceSameDevice: true, allowNewEmailAccounts: true, actionCodeSetting: ActionCodeSettings())
  emailAuth.signIn(withPresenting: vc, email: nil)
}

Please fix this asap.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions