Firebase Auth - get provider ID

I had to JSON.stringify(currentUser.providerData) in order to see how it's organized:

Stringify result

And i finally found the Auth Provider like this:


Cheers, gl with your code : )

Since a user can sign into their Firebase Authentication account with multiple providers, the top-level provider ID will now (usually) be Firebase.

But the currentUser has a providerData property that provides information on the speciic providers. Looping over FIRAuth.auth()!.currentUser.providerData will give you the FIRUserInfo.providerID you're looking for.

See also this question about UIDs, which are in a similar situation: Firebase returns multiple IDs, Which is unique one?

Swift 4 solution:

   if let providerData = Auth.auth().currentUser?.providerData {
        for userInfo in providerData {
            switch userInfo.providerID {
            case "":
                print("user is signed in with facebook")
            case "":
                print("user is signed in with google")
                print("user is signed in with \(userInfo.providerID)")