How to determine if the user signed in to Firebase with email and password or with google sign in?

前端 未结 4 2501
遥遥无期
遥遥无期 2021-02-10 04:30

I am working on a log in for a web application, and I have made it so the user can sign in manually with their email and password or by using a google sign in. Is there a way to

4条回答
  •  遇见更好的自我
    2021-02-10 05:12

    @mjrdnk's answer is correct, but there are cases that are not covered by the answer so I find that this solution works best in all cases (that I have tested).

    val user = firebaseAuth.currentUser
    
            user?.let {
    
            authProvider = when (it.providerData[it.providerData.size-1].providerId) {
                "phone" -> {
                    ConnectedUser.LOGIN_PROVIDERS.PHONE
                }
                "password" -> {
                    // Email and password
                    ConnectedUser.LOGIN_PROVIDERS.EMAIL
                }
                else -> {
                    ConnectedUser.LOGIN_PROVIDERS.UNKNOWN
                }
            }
    .
    .
    .
    

    Wonderful source of information: FirebaseUI for Auth

    Some provider names follow (see above source code for more):

    ANONYMOUS_PROVIDER = "anonymous"
    EMAIL_LINK_SIGN_IN_METHOD = "emailLink"
    EMAIL_PASSWORD_SIGN_IN_METHOD = "password"
    MICROSOFT_PROVIDER = "microsoft.com"
    YAHOO_PROVIDER = "yahoo.com"
    APPLE_PROVIDER = "apple.com"
    PHONE = "phone"
    

提交回复
热议问题