The documentation for the Web SDK does not mention that upon successfully authentication, Firebase sets the User object in localStorage. The API reference does not mention this either. I discovered this the same way you have by examining localStorage while trying to configure my Vue app with Firebase.
To retrieve the user from localStorage, you can do the following:
const authUser = Object.keys(window.localStorage)
.filter(item => item.startsWith('firebase:authUser'))[0]
You could have multiple entries in localStorage
so that's the reason for filter()
Edit: See Metallica's answer below.
Update (2018-02-21): It seems there is now a section (Web) Authentication State Persistence
. Unsure if this was there when I originally posted my answer, but I'm updating this answer to link it since this questions gets moderate attention.
Update 2 (2018-02-21): As stated under Overview of persistence behavior
:
If no user is signed in and no persistence is specified, the default setting will be applied (local
in a browser app).
So localStorage
is the default which confirms my original answer before the Firebase JS SDK was open sourced.