@@ -116,14 +116,8 @@ class AuthManager with UserAuthentication {
116
116
print ('Sign in anonymous failed' );
117
117
return null ;
118
118
}
119
- Future <void > updateCurrentUser (BuildContext context, User newUser) async {
120
- await StorageManager ()
121
- .writeToSystemStorage (UserAuthentication ._idKey, newUser.uid);
122
- await StorageManager ()
123
- .writeToSystemStorage (UserAuthentication ._isAnonymous, true );
124
- }
125
119
126
- updateCurrentUser (context, user);
120
+ updateCurrentFirebaseUser (context, user);
127
121
128
122
return user.isAnonymous;
129
123
} catch (e) {
@@ -132,6 +126,37 @@ class AuthManager with UserAuthentication {
132
126
}
133
127
}
134
128
129
+ Future <String ?> signInWithCustomToken (
130
+ BuildContext context,
131
+ {required String jwtToken}
132
+ ) async {
133
+ try {
134
+ customFirebaseApp ?? = await _initializeFirebaseSignIn ();
135
+ final _auth = FirebaseAuth .instanceFor (app: customFirebaseApp! );
136
+
137
+ UserCredential userCredential = await _auth.signInWithCustomToken (jwtToken);
138
+ User ? user = userCredential.user;
139
+ if (user == null ) {
140
+ print ('Sign in with custom firebase auth token failed' );
141
+ return null ;
142
+ }
143
+ String ? firebaseToken = await user.getIdToken ();
144
+
145
+ updateCurrentFirebaseUser (context, user);
146
+ return firebaseToken;
147
+ } catch (e) {
148
+ print (e.toString ());
149
+ return null ;
150
+ }
151
+ }
152
+
153
+ Future <void > updateCurrentFirebaseUser (BuildContext context, User newUser) async {
154
+ await StorageManager ()
155
+ .writeToSystemStorage (UserAuthentication ._idKey, newUser.uid);
156
+ await StorageManager ()
157
+ .writeToSystemStorage (UserAuthentication ._isAnonymous, newUser.isAnonymous);
158
+ }
159
+
135
160
Future <String ?> _signInLocally (BuildContext context,
136
161
{required AuthenticatedUser user, AuthToken ? token}) async {
137
162
// update the current user
0 commit comments