master #81
@ -27,7 +27,7 @@ class ExampleSignInCubit extends SignInCubit<int> {
|
|||||||
@override
|
@override
|
||||||
FutureOrResult<int?> onSignInWithEmailAndPassword(
|
FutureOrResult<int?> onSignInWithEmailAndPassword(
|
||||||
Result<Account, AppException> result, WyattForm form) {
|
Result<Account, AppException> result, WyattForm form) {
|
||||||
print('onSignInWithEmailAndPassword');
|
print('onSignInWithEmailAndPassword: ${result.ok?.accessToken}');
|
||||||
|
|
||||||
return const Ok(1);
|
return const Ok(1);
|
||||||
}
|
}
|
||||||
|
@ -72,11 +72,15 @@ class AuthenticationFirebaseDataSourceImpl<Data>
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Account _addToStream(
|
Future<Account> _addToCredentialStream(
|
||||||
UserCredential userCredential,
|
UserCredential userCredential,
|
||||||
AuthenticationChangeEvent Function(Account account) eventBuilder,
|
) async {
|
||||||
) {
|
final currentUser = _firebaseAuth.currentUser;
|
||||||
final account = AccountModel.fromFirebaseUserCredential(userCredential);
|
final jwt = await currentUser?.getIdToken(true);
|
||||||
|
final account = AccountModel.fromFirebaseUserCredential(
|
||||||
|
userCredential,
|
||||||
|
accessToken: jwt,
|
||||||
|
);
|
||||||
|
|
||||||
_latestCredentials.add(userCredential);
|
_latestCredentials.add(userCredential);
|
||||||
|
|
||||||
@ -114,12 +118,7 @@ class AuthenticationFirebaseDataSourceImpl<Data>
|
|||||||
password: password,
|
password: password,
|
||||||
);
|
);
|
||||||
|
|
||||||
return _addToStream(
|
return _addToCredentialStream(userCredential);
|
||||||
userCredential,
|
|
||||||
(account) => SignedUpEvent(
|
|
||||||
account: account,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} on FirebaseAuthException catch (e) {
|
} on FirebaseAuthException catch (e) {
|
||||||
throw SignUpWithEmailAndPasswordFailureFirebase.fromCode(e.code);
|
throw SignUpWithEmailAndPasswordFailureFirebase.fromCode(e.code);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
@ -139,12 +138,7 @@ class AuthenticationFirebaseDataSourceImpl<Data>
|
|||||||
password: password,
|
password: password,
|
||||||
);
|
);
|
||||||
|
|
||||||
return _addToStream(
|
return _addToCredentialStream(userCredential);
|
||||||
userCredential,
|
|
||||||
(account) => SignedInEvent(
|
|
||||||
account: account,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} on FirebaseAuthException catch (e) {
|
} on FirebaseAuthException catch (e) {
|
||||||
throw SignInWithEmailAndPasswordFailureFirebase.fromCode(e.code);
|
throw SignInWithEmailAndPasswordFailureFirebase.fromCode(e.code);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
@ -158,12 +152,7 @@ class AuthenticationFirebaseDataSourceImpl<Data>
|
|||||||
try {
|
try {
|
||||||
final userCredential = await _firebaseAuth.signInAnonymously();
|
final userCredential = await _firebaseAuth.signInAnonymously();
|
||||||
|
|
||||||
return _addToStream(
|
return _addToCredentialStream(userCredential);
|
||||||
userCredential,
|
|
||||||
(account) => SignedInEvent(
|
|
||||||
account: account,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} on FirebaseAuthException catch (e) {
|
} on FirebaseAuthException catch (e) {
|
||||||
throw SignInAnonymouslyFailureFirebase.fromCode(e.code);
|
throw SignInAnonymouslyFailureFirebase.fromCode(e.code);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
@ -191,12 +180,7 @@ class AuthenticationFirebaseDataSourceImpl<Data>
|
|||||||
final userCredential =
|
final userCredential =
|
||||||
await _firebaseAuth.signInWithCredential(credential);
|
await _firebaseAuth.signInWithCredential(credential);
|
||||||
|
|
||||||
return _addToStream(
|
return _addToCredentialStream(userCredential);
|
||||||
userCredential,
|
|
||||||
(account) => SignedInEvent(
|
|
||||||
account: account,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} on FirebaseAuthException catch (e) {
|
} on FirebaseAuthException catch (e) {
|
||||||
throw SignInWithGoogleFailureFirebase.fromCode(e.code);
|
throw SignInWithGoogleFailureFirebase.fromCode(e.code);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
@ -248,7 +232,11 @@ class AuthenticationFirebaseDataSourceImpl<Data>
|
|||||||
throw Exception(); // Get caught just after.
|
throw Exception(); // Get caught just after.
|
||||||
}
|
}
|
||||||
|
|
||||||
final account = AccountModel.fromFirebaseUser(_firebaseAuth.currentUser);
|
final jwt = await _firebaseAuth.currentUser?.getIdToken(true);
|
||||||
|
final account = AccountModel.fromFirebaseUser(
|
||||||
|
_firebaseAuth.currentUser,
|
||||||
|
accessToken: jwt,
|
||||||
|
);
|
||||||
|
|
||||||
return account;
|
return account;
|
||||||
} on FirebaseAuthException catch (e) {
|
} on FirebaseAuthException catch (e) {
|
||||||
|
@ -21,8 +21,9 @@ import 'package:wyatt_authentication_bloc/src/domain/entities/account.dart';
|
|||||||
/// Account Model to parse Firebase User data
|
/// Account Model to parse Firebase User data
|
||||||
class AccountModel extends Account {
|
class AccountModel extends Account {
|
||||||
factory AccountModel.fromFirebaseUserCredential(
|
factory AccountModel.fromFirebaseUserCredential(
|
||||||
UserCredential? userCredential,
|
UserCredential? userCredential, {
|
||||||
) {
|
required String? accessToken,
|
||||||
|
}) {
|
||||||
final user = userCredential?.user;
|
final user = userCredential?.user;
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
final providerId =
|
final providerId =
|
||||||
@ -39,14 +40,17 @@ class AccountModel extends Account {
|
|||||||
email: user.email,
|
email: user.email,
|
||||||
phoneNumber: user.phoneNumber,
|
phoneNumber: user.phoneNumber,
|
||||||
photoURL: user.photoURL,
|
photoURL: user.photoURL,
|
||||||
accessToken: userCredential?.credential?.accessToken,
|
accessToken: accessToken,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
throw ModelParsingFailureFirebase('null-user', 'User cannot be null');
|
throw ModelParsingFailureFirebase('null-user', 'User cannot be null');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
factory AccountModel.fromFirebaseUser(User? user, {String? accessToken}) {
|
factory AccountModel.fromFirebaseUser(
|
||||||
|
User? user, {
|
||||||
|
required String? accessToken,
|
||||||
|
}) {
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
final providerId =
|
final providerId =
|
||||||
(user.providerData.isEmpty) ? '' : user.providerData.first.providerId;
|
(user.providerData.isEmpty) ? '' : user.providerData.first.providerId;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user