【问题标题】:What is the full list of provider id's for firebase.UserInfo.providerId?firebase.UserInfo.providerId 的提供者 ID 的完整列表是什么?
【发布时间】:2018-04-04 16:44:48
【问题描述】:

文档说

例如,“facebook.com”或“google.com”。

但是,是否可以在某个地方找到详尽的列表,我可以依赖它吗?这些 id 是否可以是变体,例如“facebook”或“google”(没有 .com)?

上下文:我想弄清楚登录用户是否有社交登录。所以我想遍历currentUser.providerData 并将其与已知的providerIds 列表进行匹配。

【问题讨论】:

    标签: firebase firebase-authentication


    【解决方案1】:

    从任何项目的 Firebase 控制台上的身份验证中的登录方法子选项卡中,您可以看到可用登录提供程序的列表:

    Firebase 的文档似乎没有跨不同平台,但对于 iOS Reference docs,有一个与项目控制台仪表板中的匹配的 FirebaseAuth 常量列表,但匿名提供者除外:

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

    从头开始创建一个新的 iOS 项目并将此代码添加到 didFinishLaunchingWithOptions 方法后:

    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)
    

    我得到的输出是:

    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
    

    【讨论】:

    • 谢谢帕特。好好研究!这很有帮助。
    • 我只是顺便说一下你是最棒的,帕特!这个答案比你想象的更有帮助和有用。
    • 感谢@Joris Mans 更新此列表!
    • 我知道这是很久以前的问题了,但是 SDK 源代码为您提供了一个常量列表 - github.com/firebase/firebase-ios-sdk/blob/master/FirebaseAuth/… - 这样您就可以找到当前的字符串文字而无需运行任何东西。
    【解决方案2】:

    您可以使用此方法来识别提供者的类型:

        private String checkType(String s) {
        String type;
    
        switch (s) {
            case "password":
                type = "EmailAuthProviderID";
                break;
            case "phone":
                type = "PhoneAuthProviderID";
                break;
            case "google.com":
                type = "GoogleAuthProviderID";
                break;
            case "facebook.com":
                type = "FacebookAuthProviderID";
                break;
            case "twitter.com":
                type = "TwitterAuthProviderID";
                break;
            case "github.com":
                type = "GitHubAuthProviderID";
                break;
    
        }
    
    
    }
    

    【讨论】:

      【解决方案3】:
          import com.google.firebase.auth.*
      
      
          val user = FirebaseAuth.getInstance().currentUser
          user?.let {
              for (profile in it.providerData) {
                  when(profile.providerId){
                      GoogleAuthProvider.PROVIDER_ID -> {
      
                      }
                      EmailAuthProvider.PROVIDER_ID -> {
      
                      }
                      PhoneAuthProvider.PROVIDER_ID -> {
      
                      }
                      FacebookAuthProvider.PROVIDER_ID -> {
      
                      }
                      TwitterAuthProvider.PROVIDER_ID -> {
      
                      }
                      GithubAuthProvider.PROVIDER_ID -> {
      
                      }
                  }
              }
          }
      

      这里是 Firebase SDK 提供程序类。

      【讨论】:

        【解决方案4】:

        奇怪的是,js SDK 上缺少 MicrosoftAuthProvider(但可以工作)并且在统一 SDK 上可用

        【讨论】:

          【解决方案5】:

          最简单的方法是检查规则选项卡中的提供商列表:

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-04-11
            • 2021-09-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-11-03
            • 2021-01-16
            相关资源
            最近更新 更多