register method
Register a user by passing a class inheriting from RegisterAuthProvider in provider
.
RegisterAuthProviderを継承したクラスをprovider
で渡すことにより、ユーザーの登録を行います。
Implementation
Future<void> register({
required RegisterAuthProvider provider,
}) async {
await _initialize();
if (isSignedIn) {
await signOut();
}
if (provider is EmailAndPasswordRegisterAuthProvider) {
final accounts = _data._getAccounts();
final account = accounts.firstWhereOrNull(
(element) => element.get(userEmailKey, "") == provider.email);
if (account != null) {
if (!provider.allowMultiProvider) {
throw Exception(
"This Email address is already registered. Please register another email address.",
);
}
}
final userId = _uuid;
_data._setAccount(
userId,
{
userIdKey: userId,
userEmailKey: provider.email,
userPasswordKey: provider.password,
activeProvidersKey: [
...activeProviderIds,
provider.providerId,
].distinct(),
},
);
_data._setCurrent(userId);
await onSendRegisteredEmail?.call(
provider.email,
provider.password,
provider.locale ?? defaultLocale,
);
}
await onSaved?.call(this);
}