当前位置: 首页 > 知识库问答 >
问题:

Flutter Firebase身份验证仅在提供测试电话号码时有效

岳浩宕
2023-03-14

电话号码验证失败。代码:FirebaseAuth。消息:此应用程序未被授权使用Firebase身份验证。请验证Firebase控制台中是否配置了正确的包名和SHA-1。[应用程序验证失败]

请看一看,并分享你的想法,可能是我做了一些错误。


  // Example code of how to verify phone number
  void _verifyPhoneNumber() async {
    setState(() {
      _message = '';
    });
    final PhoneVerificationCompleted verificationCompleted =
        (AuthCredential phoneAuthCredential) {
      _auth.signInWithCredential(phoneAuthCredential);
      setState(() {
        _message = 'Received phone auth credential: $phoneAuthCredential';
      });
    };

    final PhoneVerificationFailed verificationFailed =
        (AuthException authException) {
      setState(() {
        _message =
            'Phone number verification failed. Code: ${authException.code}. Message: ${authException.message}';
      });
    };

    final PhoneCodeSent codeSent =
        (String verificationId, [int forceResendingToken]) async {
      widget._scaffold.showSnackBar(const SnackBar(
        content: Text('Please check your phone for the verification code.'),
      ));
      _verificationId = verificationId;
    };

    final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout =
        (String verificationId) {
      _verificationId = verificationId;
    };

    await _auth.verifyPhoneNumber(
        phoneNumber: _phoneNumberController.text,
        timeout: const Duration(seconds: 5),
        verificationCompleted: verificationCompleted,
        verificationFailed: verificationFailed,
        codeSent: codeSent,
        codeAutoRetrievalTimeout: codeAutoRetrievalTimeout);
  }





  // Example code of how to sign in with phone.
  void _signInWithPhoneNumber() async {
    final AuthCredential credential = PhoneAuthProvider.getCredential(
      verificationId: _verificationId,
      smsCode: _smsController.text,
    );
    final FirebaseUser user =
        (await _auth.signInWithCredential(credential)).user;
    final FirebaseUser currentUser = await _auth.currentUser();
    assert(user.uid == currentUser.uid);
    setState(() {
      if (user != null) {
        _message = 'Successfully signed in, uid: ' + user.uid;
      } else {
        _message = 'Sign in failed';
      }
    });
  }

如果你们需要完整的代码请评论,我会分享完整的代码

共有1个答案

傅乐湛
2023-03-14

SHA-1配置不是在Firebase端完成的,一旦SHA-1配置完成,它就会开始完美运行。

请检查此链接以配置SHA-1

https://stackoverflow.com/A/56091158/12072674

 类似资料:
  • keytool-list-v-keystore my_keystore.jks

  • 我在验证电话号码时遇到了问题。电话号码是一个10位数的字符串,应该填充在三个输入字段中第一个输入字段--仅有3位数(要求,只能接受数字和最大长度3)第二个输入字段--仅有3位数(要求,只能接受数字和最大长度3)第三个输入字段--仅有4位数(要求,只能接受数字和最大长度4)

  • 但我有以下错误 {“错误”:{“代码”:403,“消息”:“来自此ios客户端应用程序的请求被阻止。”,“错误”:[{“消息”:“来自此ios客户端应用程序的请求被阻止。”,“域”:“全局”,“原因”:“禁止”}],“状态”:“允许_Denied”}} 我已经实现了这一点,正如文档中所示。 下面是AppDelegate.swift的代码: 下面是ViewController.swift的代码:

  • 我正在尝试使用以下链接将firebase电话号码认证集成到我的应用程序中:https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md 我正在使用带有Firebase-UI的即插即用解决方案。似乎电话号码身份验证成功,但生成的令牌

  • 我是HTML,有谁能帮我验证一个电话号码只有'+'和数字值和电话号码不超过13个数字,并验证电子邮件与'@'和‘。我不想使用javascript