signUpWithEmailAndPassword method

Future<void> signUpWithEmailAndPassword({
  1. required String email,
  2. required String password,
  3. required PeamanUser appUser,
  4. dynamic onSuccess(
    1. String
    )?,
  5. dynamic onError(
    1. dynamic
    )?,
})

Implementation

Future<void> signUpWithEmailAndPassword({
  required final String email,
  required final String password,
  required final PeamanUser appUser,
  final Function(String)? onSuccess,
  final Function(dynamic)? onError,
}) async {
  try {
    final _result = await _auth.createUserWithEmailAndPassword(
      email: email,
      password: password,
    );

    final _user = appUser.copyWith(
      uid: _result.user?.uid,
      createdAt: _result.user?.metadata.creationTime?.millisecondsSinceEpoch,
    );

    await AppUserProvider().createUser(user: _user);
    _userFromFirebase(_result.user);

    print('Success: Creating user with name ${_user.name}');
    if (_result.user != null) {
      onSuccess?.call(_result.user!.uid);
    }
  } catch (e) {
    print(e);
    print('Error!!!: Creating user');
    onError?.call(e);
  }
}