Skip to content

Setting Persistence Doesn't Work #3131

Open

Description

@flauc

Currently running setPersistence with any Persistence breaks. I was able to work around this by just importing setPersistence from @firebase/auth instead of @angular/fire/auth.

Version info

Angular: 13.1.3

Firebase: 9.6.4

AngularFire: 7.2.0

Other (e.g. Ionic/Cordova, Node, browser, operating system): Node 17.x; OS Windows 11; Browser Chrome;

How to reproduce these conditions

Try setting persistance:

setPersistence(this.auth, browserSessionPersistence).catch(console.error);

Debug output

TypeError: Class constructor BrowserSessionPersistence cannot be invoked without 'new'
    at angular-fire.js:206:29
    at angular-fire.js:163:45
    at ZoneDelegate.invoke (zone.js:372:1)
    at Object.onInvoke (core.mjs:25457:1)
    at ZoneDelegate.invoke (zone.js:371:1)
    at Zone.run (zone.js:134:1)
    at NgZone.run (core.mjs:25311:1)
    at run (angular-fire.js:163:35)
    at new <anonymous> (angular-fire.js:206:16)
    at _getInstance (index-bc414788.js:535:16)

Expected behavior

Setting persistence works.

Actual behavior

Setting persistence doesn't work.

Activity

  1. vandres commented on Jan 26, 2022

    @vandres

    This is related with issue #3038

  2. Idomo commented on Feb 27, 2022

    @Idomo

    I was able to workaround this with import { setPersistence } from '@firebase/auth' only, browserSessionPersistence can be imported from @angular/fire/auth.

  3. Sapython commented on Mar 10, 2022

    @Sapython

    Check this pull request it has new docs in that I have added how to use persistence correctly #3174

  4. romanhuba commented on Sep 27, 2022

    @romanhuba

    Settings persistence in this way is correct, the issue is that it does not work if the function is imported from @angular/fire/auth.

    @jamesdaniels any ideas?

  5. IvanColucciSW commented on Sep 1, 2023

    @IvanColucciSW

    Anyone has managed to solve this issue? I'm facing it right now and it's so annoying

  6. TechieWithBeard commented on Feb 8, 2024

    @TechieWithBeard

    this is the correct format
    this.auth.setPersistence(browserLocalPersistence).then(e=>{ ...... .... })

  7. mcdalir commented on May 3, 2024

    @mcdalir

    this is the correct format this.auth.setPersistence(browserLocalPersistence).then(e=>{ ...... .... })

    It worked for me, thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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