angularfire icon indicating copy to clipboard operation
angularfire copied to clipboard

setPersistence in AngularFire _BrowserLocalPersistence cannot be invoked without 'new'`

Open omtagline opened this issue 1 year ago • 3 comments

Problem The setPersistence method does not work when imported from @angular/fire/auth, leading to a TypeError. However, it works when imported from firebase/auth.

Error When using the import from @angular/fire/auth, the following error is encountered:

ERROR TypeError: Class constructor _BrowserLocalPersistence cannot be invoked without 'new' Code Example

  • Non-functional: import { setPersistence, browserLocalPersistence } from '@angular/fire/auth'; await setPersistence(this.auth, browserLocalPersistence);

  • Functional: import { setPersistence, browserLocalPersistence } from 'firebase/auth'; await setPersistence(this.auth, browserLocalPersistence);

omtagline avatar Jun 20 '24 06:06 omtagline

This issue does not seem to follow the issue template. Make sure you provide all the required information.

google-oss-bot avatar Jun 20 '24 06:06 google-oss-bot

Ran into the same issue and am following the same work around as described in this ticket.

BTW, here is the stackoverflow.com question from 3 years ago with the exact same problem and work around: https://stackoverflow.com/questions/69292778/angularfire-auth-persistence-cannot-be-invoked-without-new

Steve-from-Memphis avatar Dec 21 '24 16:12 Steve-from-Memphis

Trying to write tests with the Firebase Emulator it seems that sign in can persist across tests. I hoped that setting setPersistence(auth, inMemoryPersistence) would help, but it does not seem to.

However I still experienced the issue mentioned above and the work around still at least executed the test suite.

Same issue as #3131

rgant avatar Jan 28 '25 14:01 rgant