【问题标题】:Flutter firebase auth phone authentication fails even with test numbers即使有测试号码,Flutter firebase auth 电话身份验证也会失败
【发布时间】:2019-01-02 00:41:19
【问题描述】:

我正在使用 firebase_auth 包在我的 Flutter 应用中启用电话身份验证。我按照firebase-flutter教程设置了firebase项目和一个支持android的应用程序。

然后我按照 firebase_auth 示例代码创建了我的登录页面,但是我收到了示例中提供的示例编号/代码的以下错误

PlatformException(error, Cannot create PhoneAuthCredential without either verificationProof, sessionInfo, ortemprary proof., null)

当我尝试 verifyPhoneNumber 时,下面的文本小部件中会打印以下错误

Phone authentication failed: Network error

.. 我的网络一切正常。

【问题讨论】:

  • 您是在真机上试用还是仅在模拟器上试用?
  • 真机,三星S5

标签: authentication flutter


【解决方案1】:

这不是一个真正的答案,但我已经研究了演示示例。额外的步骤是创建一个 Firebase 应用程序,创建 SHA1 指纹,将 json 应用到 android 应用程序目录,并且没有遵循 firebase android gradle 设置。完成的另一件事是在 Firebase 中使用电话设置身份验证。该示例完美运行。

【讨论】:

    【解决方案2】:

    就我而言,我在一个页面中进行验证并在另一个页面上登录。因此,我正在创建我的身份验证服务的两个实例,其中包括一个 FirebaseAuth.instance 对象 我认为“FirebaseAuth.instance”不是单例,每次调用它都会返回不同的对象。

    我的解决方案是让我的 AuthService 成为单例,以确保为“verifyPhoneNumber”和“signInWithPhoneNumber”调用一次“FirebaseAuth.instance”。

    以下是代码,仅供参考,我正在使用上下文进行导航。

    class AuthService {  
      FirebaseAuth auth = FirebaseAuth.instance;
    
      static AuthService _authService;
      static AuthService of(context)  {
        if(_authService == null) _authService = AuthService(context);
        else _authService.context = context;
        return _authService;
      }
    
      BuildContext context;
      AuthService(this.context);
    
      // your code for "verifyPhoneNumber" and "signInWithPhoneNumber"...... 
    }
    

    更新 1

    另外请注意,如果 verifyId 或 smsCode 为空,您将收到相同的错误消息。

    【讨论】:

    • 感谢您的回答,但我通过演示得到了它。
    【解决方案3】:

    如果这个插件从来没有为你工作过,尤其是手机验证,这通常是一个配置问题。在您的应用程序中使用之前,我会先让示例应用程序运行并解决所有配置问题。 https://github.com/flutter/plugins/tree/master/packages/firebase_auth/example

    【讨论】:

    • 好的,让我先做。谢谢。
    • 很高兴你让它工作了。对于第一次配置 firebase_auth 包的其他人,我提供了在电话身份验证功能仍然是拉取请求时使示例应用程序正常工作所采取的配置步骤。这些步骤应该仍然适用,减去检查拉取请求的步骤(因为现在发布了带有电话身份验证功能的包)。 github.com/flutter/plugins/pull/606#issuecomment-402878854
    猜你喜欢
    • 2019-03-11
    • 2021-06-11
    • 2018-12-06
    • 1970-01-01
    • 2020-12-15
    • 2018-10-09
    • 1970-01-01
    • 2020-05-22
    • 2020-03-11
    相关资源
    最近更新 更多