0

I just saw a tutorial, where the author although was using shared-ref to store the user name, email etc locally, but he didn't use anything to store currentUser on a flutter app, which was connected to firebase. and hence in splash screen, he used if currentUser != null, then goto Home Screen, and it worked fine on restarting the app. hence to log out, again he used firebaseAuth.signOut() . so, does firebase stores currentUser automatically on the local storage of the app?

Frank van Puffelen
  • 499,950
  • 69
  • 739
  • 734
Riyazat Durrani
  • 333
  • 3
  • 17

2 Answers2

1

Firebase Authentication SDKs store the credentials of the user in local storage, and then restore the user from there when the app restarts/page reloads.

Note that this doesn't always means that currentUser != null will work on app startup/page load, as restoring the credentials requires an asynchronous call to the server and currentUser will be null until that call completes. For the best results listen/respond to authStateChanges as shown in the documentation on authentication state.

Frank van Puffelen
  • 499,950
  • 69
  • 739
  • 734
0

I don’t think it’s stored locally in terms of shared preferences/ user defaults. I had an issue where without logging out, but uninstalling and reinstalling the app resulted in the app already knowing who I was. Turns out, it was stored in keychain (on iOS, I don’t know the android counterpart). See this answer for more detail on my particular understanding of how firebase saves the user:

https://stackoverflow.com/a/69621552/12132021

Jared Anderton
  • 717
  • 5
  • 6
  • I guess, the issue you are talking about is related to caching, turns out that indeed its stored locally, as stated by the accepted answer here. https://stackoverflow.com/questions/64042555/firestore-flutter-save-current-user-data-to-device-locally – Riyazat Durrani Jan 09 '22 at 19:27