signOut method
Implementation
@override
Future<Response<Auth>> signOut([AuthProviders? provider]) async {
final response = Response<Auth>();
var data = Auth.fromUser(user);
try {
if (await isConnected) {
if (provider != null) {
switch (provider) {
case AuthProviders.email:
case AuthProviders.phone:
case AuthProviders.username:
await firebaseAuth.signOut();
break;
case AuthProviders.facebook:
await facebookAuth.logOut();
break;
case AuthProviders.google:
await googleAuth.signOut();
break;
case AuthProviders.apple:
case AuthProviders.biometric:
case AuthProviders.github:
case AuthProviders.twitter:
case AuthProviders.none:
break;
}
} else {
await firebaseAuth.signOut();
if (await googleAuth.isSignedIn()) {
googleAuth.disconnect();
googleAuth.signOut();
}
}
} else {
return response.withStatus(Status.networkError);
}
} catch (_) {
return response.withException(_, status: Status.failure);
}
return response.withData(data);
}