in javascript/widgets/handler/common.js [1082:1192]
function(
app,
container,
signInMethods,
email,
opt_displayName,
opt_infoBarMessage,
opt_displayFullTosPpMessage) {
if (!signInMethods.length && (app.getConfig().isEmailPasswordSignInAllowed()
|| app.getConfig().isEmailLinkSignInAllowed())) {
if (app.getConfig().isEmailSignUpDisabled()) {
// FirebaseUI auth instance disable sign up.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.UNAUTHORIZED_USER,
app,
container,
email,
firebase.auth.EmailAuthProvider.PROVIDER_ID);
} else {
if (app.getConfig().isEmailPasswordSignInAllowed()) {
// Account does not exist and password sign-in method is enabled. Go to
// password sign up and populate available fields.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.PASSWORD_SIGN_UP,
app,
container,
email,
opt_displayName,
undefined,
opt_displayFullTosPpMessage);
} else {
// Account does not exist and email link sign-in method is enabled. Send
// email link to sign in.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.SEND_EMAIL_LINK_FOR_SIGN_IN,
app,
container,
email,
function() {
// Clicking back button goes back to sign in page.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.SIGN_IN,
app,
container);
});
}
}
} else if (goog.array.contains(signInMethods,
firebase.auth.EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD)) {
// Existing Password account.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.PASSWORD_SIGN_IN,
app,
container,
email,
opt_displayFullTosPpMessage);
} else if ((signInMethods.length == 1) && (signInMethods[0] ===
firebase.auth.EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD)) {
if (app.getConfig().isEmailLinkSignInAllowed()) {
// Existing email link account.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.SEND_EMAIL_LINK_FOR_SIGN_IN,
app,
container,
email,
function() {
// Clicking back button goes back to sign in page.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.SIGN_IN,
app,
container);
});
} else {
// Email link sign-in is the only option for this user but it is not
// supported in the current app configuration.
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.UNSUPPORTED_PROVIDER,
app,
container,
email);
}
} else {
// Federated Account.
// The account exists, and is a federated identity account.
// We store the pending email in case the user tries to use an account with
// a different email.
var federatedSignInMethod =
firebaseui.auth.idp.getFirstFederatedSignInMethod(
signInMethods, app.getConfig().getProviders());
if (federatedSignInMethod) {
var pendingEmailCredential =
new firebaseui.auth.PendingEmailCredential(email);
firebaseui.auth.storage.setPendingEmailCredential(
pendingEmailCredential, app.getAppId());
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.FEDERATED_SIGN_IN,
app,
container,
email,
federatedSignInMethod,
opt_infoBarMessage);
} else {
firebaseui.auth.widget.handler.handle(
firebaseui.auth.widget.HandlerName.UNSUPPORTED_PROVIDER,
app,
container,
email);
}
}
};