signInWithCredential method
- AuthCredential credential
Signs in using credentials.
credential The AuthCredential from provider.
Authenticates using the credential.
Returns a Future containing the UserCredential.
Example:
UserCredential credential = await auth.signInWithCredential(myCredential);
Implementation
Future<UserCredential> signInWithCredential(AuthCredential credential) async {
await _initFuture;
final credDetails = await _authHelper.signInWithCredentialHelper(
client: createClient(app),
credential: credential,
);
final access_token = IdTokenResult(token: credDetails["access_token"]);
final refresh_token = credDetails["refresh_token"];
final userDetails = await _authHelper.getUserDetails(
accessToken: access_token,
);
final User user = User(
user: userDetails,
auth: this,
accessToken: access_token,
refreshToken: refresh_token,
);
await user.getFUSABASEToken();
var userCred;
final authnToken = null;
if (credential is GoogleAuthCredential) {
userCred = UserCredential(
user: user,
credential: GoogleAuthProvider.credential(
accessToken: access_token.token,
idToken: authnToken,
),
);
} else if (credential is FacebookAuthCredential) {
userCred = UserCredential(
user: user,
credential: FacebookAuthProvider.credential(
accessToken: access_token.token,
idToken: authnToken,
),
);
} else if (credential is GithubAuthCredential) {
userCred = UserCredential(
user: user,
credential: GithubAuthProvider.credential(
accessToken: access_token.token,
idToken: authnToken,
),
);
} else if (credential is IDCSAuthCredential) {
userCred = UserCredential(
user: user,
credential: IDCSAuthProvider.credential(
accessToken: access_token.token,
idToken: authnToken,
),
);
}
await __setCredTokens({
"accessToken": access_token,
"refreshToken": refresh_token,
});
__updateCurrentUser(user);
return userCred;
}