signInWithEmailAndPassword not working on iOS simulator/device without livereload

Ionic 5 capacitor app.
I have a button in a child component that when clicked, emits an event that calls a function in the parent component. In other words…

Child component’s .ts

 @Output() formSubmitted = new EventEmitter<any>();
//... other stuff
  submitCredentials(authForm: FormGroup): void { 
    if (!authForm.valid) {
      console.log('Form is not valid yet, current value:', authForm.value); }
    else{
      const credentials = {
        email: authForm.value.email,
        password: authForm.value.password};
      this.formSubmitted.emit(credentials); }
    }

Parent component’s html

<app-auth-form
    (formSubmitted)="handleUserCredentials($event)">
  </app-auth-form>

This works fine on the web and on Android. On iOS simulator & device, it works with livereload, but without livereload, it does nothing.

Any idea why this is the case? How do I resolve it to work without livereload?

The first thing I would check is whether you are absolutely sure that authForm is valid when you expect it to be, because it not being so would be a fairly straightforward explanation.

Thanks. I checked and the validation worked fine.

After further digging, it looks like it doesn’t like

await signInWithEmailAndPassword

in this function that it calls

 async signIn(value){
   return (await signInWithEmailAndPassword(this.auth, value.email, value.password)).user
  }

I even wrapped it around try() catch() as follows…

async signIn(value){alert(value.email + ',' + value.password)
  try {alert('signing in')
    return (await signInWithEmailAndPassword(this.auth, value.email, value.password)).user
  } catch (error) {
    alert('what the heck?' + error)
    } 
  }

the ‘Signing in’ popped up, then nothing else happened. I tried again, this time with livereload, and it worked fine. Why won’t it work without livereload??