【问题标题】:How to fix Error: The argument type 'void Function(String, int)' can't be assigned to the parameter type 'void Function(String, int?)' because 'int?'如何修复错误:无法将参数类型“void Function(String, int)”分配给参数类型“void Function(String, int?)”,因为“int?”
【发布时间】:2021-09-24 08:21:31
【问题描述】:

这是错误:

无法将参数类型“void Function(String, int)”分配给参数类型“void Function(String, int?)”,因为“int?”可以为空,而 'int' 不是。 codeSent: (String verifyID, int resendToken) { ^

这是我的代码:

verifyPhone() async {
var widget;
await FirebaseAuth.instance.verifyPhoneNumber(
    phoneNumber: "+91${widget.phone}",
    verificationCompleted: (PhoneAuthCredential credential) async {
      await FirebaseAuth.instance
          .signInWithCredential(credential)
          .then((value) async {
        if (value.user != null) {
          Navigator.pushAndRemoveUntil(
              context,
              MaterialPageRoute(builder: (context) => Profilescreen()),
              (route) => false);
        }
      });
    },
    verificationFailed: (FirebaseAuthException e) {
      print(e.message);
    },
     codeSent: (String verificationID, int resendToken) {
      setState(() {
        _verificationCode = verificationID;
      });
    },


    codeAutoRetrievalTimeout: (String verificationID) {
      setState(() {
        var verificationCode = verificationID;

      });
      },
    timeout: Duration(seconds: 60));

}

谢谢!

【问题讨论】:

  • 不要忘记将答案设置为有效以关闭此主题,谢谢。

标签: firebase flutter firebase-authentication


【解决方案1】:

关于 SO 有很多类似的问题。问题来自于 null 安全功能,添加了带有问号 int? 的可空类型。

您需要使用正确的类型,就像将String 放入int 中一样。在这里,您需要调整代码以提供正确的类型。

有时您可以在任何地方使用不可为空的值,执行手动检查等。您可以阅读更多关于它的信息here

关于你的问题,我想说你必须修改你的匿名函数codeSent

(String verificationID, int? resendToken) => ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2022-10-31
    • 1970-01-01
    相关资源
    最近更新 更多