@@ -79,9 +79,7 @@ class FirebaseTokenVerifier {
7979 isEmulator: isEmulator,
8080 );
8181
82- final decodedIdToken = DecodedIdToken .fromMap (decoded.payload);
83- decodedIdToken.uid = decodedIdToken.sub;
84- return decodedIdToken;
82+ return DecodedIdToken .fromMap (decoded.payload);
8583 }
8684
8785 Future <DecodedToken > _decodeAndVerify (
@@ -249,6 +247,17 @@ class TokenProvider {
249247 required this .tenant,
250248 });
251249
250+ @internal
251+ factory TokenProvider .fromMap (Map <dynamic , dynamic > map) {
252+ return TokenProvider (
253+ identities: map['identities' ]! as Map <String , Object ?>,
254+ signInProvider: map['sign_in_provider' ]! as String ,
255+ signInSecondFactor: map['sign_in_second_factor' ] as String ? ,
256+ secondFactorIdentifier: map['second_factor_identifier' ] as String ? ,
257+ tenant: map['tenant' ] as String ? ,
258+ );
259+ }
260+
252261 /// Provider-specific identity details corresponding
253262 /// to the provider used to sign in the user.
254263 Map <String , Object ?> identities;
@@ -313,19 +322,13 @@ class DecodedIdToken {
313322 email: map['email' ] as String ? ,
314323 emailVerified: map['email_verified' ] as bool ? ,
315324 exp: map['exp' ]! as int ,
316- firebase: TokenProvider (
317- identities: Map .from (map['firebase' ]! as Map ),
318- signInProvider: map['sign_in_provider' ]! as String ,
319- signInSecondFactor: map['sign_in_second_factor' ] as String ? ,
320- secondFactorIdentifier: map['second_factor_identifier' ] as String ? ,
321- tenant: map['tenant' ] as String ? ,
322- ),
325+ firebase: TokenProvider .fromMap (map['firebase' ]! as Map ),
323326 iat: map['iat' ]! as int ,
324327 iss: map['iss' ]! as String ,
325328 phoneNumber: map['phone_number' ] as String ? ,
326329 picture: map['picture' ] as String ? ,
327330 sub: map['sub' ]! as String ,
328- uid: map['uid ' ]! as String ,
331+ uid: map['sub ' ]! as String ,
329332 );
330333 }
331334
0 commit comments