UserUserLogin screenLogin screenFirebase APIFirebase APIDashboardDashboardGrammar listGrammar listenterUserenterPasswordclickOnSignInsendUserLoginInfo()validateUserPassword()alt[correct user name and password]acceptLogin()redirects()render()[incorrect user name and password]rejectUserLogin()userOrPasswordInvalid()alt[alternative login with Google]clickOnSignInWithGoogle()sendUserLoginInfo()redirects()[incorrect login with Google]rejectLoginByGoogleAuthentication()invalidAccess()alt[alternative login with Facebook]clickOnSignInWithFacebook()sendUserLoginInfo()redirects()[incorrect login with Facebook]rejectLoginByFacebookAuthentication()invalidAccess()alt[alternative login with Twitter]clickOnSignInWithTwitter()sendUserLoginInfo()redirects()[incorrect login with Twitter]rejectLoginByTwitterAuthentication()invalidAccess()