firebasefirebase-authentication

What is the full list of provider id's for firebase.UserInfo.providerId?


The docs say

For example, 'facebook.com', or 'google.com'.

However, is the exhaustive list available somewhere and can I depend on it? Can these id's ever be a variation, like 'facebook' or 'google' (without the .com)?

Context: I am trying to figure out if the signed in user has a social login. So I want to loop through currentUser.providerData and match it against a known list of providerIds.


Solution

  • From the Sign-In Method sub-tab within Authentication found on the Firebase console for any project, you can see a list of available Sign-in providers:

    enter image description here

    Firebase's documentation doesn't seem to be even across different platforms, but for the iOS Reference docs there is a list of FirebaseAuth Constants that match up with those from the project console dashboard, with the exception of Anonymous provider:

    1. EmailAuthProviderID
    2. PhoneAuthProviderID
    3. GoogleAuthProviderID
    4. FacebookAuthProviderID
    5. TwitterAuthProviderID
    6. GitHubAuthProviderID
    7. AppleAuthProviderID
    8. YahooAuthProviderID
    9. MicrosoftAuthProviderID

    After making a new iOS project from scratch and adding this code to the didFinishLaunchingWithOptions method:

    FirebaseApp.configure()
    print("EmailAuthProviderID: " + EmailAuthProviderID)
    print("PhoneAuthProviderID: " + PhoneAuthProviderID)
    print("GoogleAuthProviderID: " + GoogleAuthProviderID)
    print("FacebookAuthProviderID: " + FacebookAuthProviderID)
    print("TwitterAuthProviderID: " + TwitterAuthProviderID)
    print("GitHubAuthProviderID: " + GitHubAuthProviderID)
    print("AppleAuthProviderID: " + AppleAuthProviderID)
    print("YahooAuthProviderID: " + YahooAuthProviderID)
    print("MicrosoftAuthProviderID: " + MicrosoftAuthProviderID)
    

    The output I get is:

    EmailAuthProviderID: password
    PhoneAuthProviderID: phone
    GoogleAuthProviderID: google.com
    FacebookAuthProviderID: facebook.com
    TwitterAuthProviderID: twitter.com
    GitHubAuthProviderID: github.com
    AppleAuthProviderID: apple.com
    YahooAuthProviderID: yahoo.com
    MicrosoftAuthProviderID: hotmail.com