如何修复“'(FirebaseUser) 类型的值?Null' 不能分配给'(AuthCredential) 类型的变量?void'。”?

Ric*_*itz 4 firebase firebase-authentication flutter

我正在尝试在我的应用程序上设置电话身份验证,但我遇到了这个错误“'(FirebaseUser) 类型的值?Null' 无法分配给类型为 '(AuthCredential) 的变量?void'。” . 关于如何解决它的任何想法?在此先感谢您的帮助!

class _AuthScreenState extends State<AuthScreen> {
 String phoneNo;
 String smsCode;
 String verificationId;

Future<void> verifyPhone() async {

final PhoneCodeAutoRetrievalTimeout autoRetrieve =(String verId) {
  this.verificationId = verId;

};

final PhoneCodeSent smsCodeSent = (String verId, [int 
forceCodeResend]){
  this.verificationId = verId;
};

final PhoneVerificationCompleted verifiedSuccess = (FirebaseUser 
user) {
  print("Verificado");

};

final PhoneVerificationFailed verifiedFailed = (AuthException 
exception) {
  print("${exception.message}");

};

await FirebaseAuth.instance.verifyPhoneNumber(
    phoneNumber: this.phoneNo,
    timeout: const Duration(seconds: 5),
    verificationCompleted: verifiedSuccess,
    verificationFailed: verifiedFailed,
    codeSent: smsCodeSent,
    codeAutoRetrievalTimeout: autoRetrieve);
 }
Run Code Online (Sandbox Code Playgroud)

Hug*_*sos 5

PhoneVerificationCompleted用于接收FirebaseUser和返回的类型void,但这在一些最新的更新中发生了变化。现在它接收AuthCredential. 只需更改分配给变量的方法中的类型即可verifiedSuccess

它应该是这样的:

final PhoneVerificationCompleted verifiedSuccess = (AuthCredential credential) {
  print("Verificado");
};
Run Code Online (Sandbox Code Playgroud)