@@ -56,15 +56,17 @@ export const useFirebaseAuthController = <ExtraData>({
56
56
57
57
const authRef = useRef ( firebaseApp ? getAuth ( firebaseApp ) : null ) ;
58
58
59
- const updateUser = useCallback ( async ( user : FirebaseUser | null ) => {
59
+ const updateUser = useCallback ( async ( user : FirebaseUser | null , initialize ?: boolean ) => {
60
60
if ( loading ) return ;
61
61
if ( defineRolesFor && user ) {
62
62
const userRoles = await defineRolesFor ( user ) ;
63
63
setRoles ( userRoles ) ;
64
64
}
65
65
setLoggedUser ( user ) ;
66
- setInitialLoading ( false ) ;
67
66
setAuthLoading ( false ) ;
67
+ if ( initialize ) {
68
+ setInitialLoading ( false ) ;
69
+ }
68
70
} , [ loading ] ) ;
69
71
70
72
useEffect ( ( ) => {
@@ -73,12 +75,12 @@ export const useFirebaseAuthController = <ExtraData>({
73
75
const auth = getAuth ( firebaseApp ) ;
74
76
authRef . current = auth ;
75
77
setAuthError ( undefined ) ;
76
- updateUser ( auth . currentUser )
78
+ updateUser ( auth . currentUser , false )
77
79
return onAuthStateChanged (
78
80
auth ,
79
- ( user ) => {
81
+ async ( user ) => {
80
82
console . log ( "User state changed" , user ) ;
81
- updateUser ( user ) ;
83
+ await updateUser ( user , true ) ;
82
84
} ,
83
85
error => setAuthProviderError ( error )
84
86
) ;
@@ -92,7 +94,7 @@ export const useFirebaseAuthController = <ExtraData>({
92
94
93
95
useEffect ( ( ) => {
94
96
if ( ! loading && authRef . current ) {
95
- updateUser ( authRef . current . currentUser ) ;
97
+ updateUser ( authRef . current . currentUser , false ) ;
96
98
}
97
99
} , [ loading , updateUser ] ) ;
98
100
0 commit comments