You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter使用Firebase_auth遇Undefined class 'UserUpdateInfo'错误求助

解决Firebase_auth中'Undefined class UserUpdateInfo'错误

嗨,这个问题我之前在升级firebase_auth包的时候也碰到过!原因很简单——UserUpdateInfo这个类在新版本的firebase_auth里已经被移除了,官方把更新用户信息的API简化了,不用再创建这个中间对象啦。

具体修改步骤:

  • 删掉你代码里创建UserUpdateInfo的两行代码:
    UserUpdateInfo updateInfo = UserUpdateInfo(); 
    updateInfo.displayName = user.displayName; 
    
  • 直接调用firebaseUser.updateProfile()方法,把要更新的参数直接传进去就行,比如你要设置displayName:
    await firebaseUser.updateProfile(displayName: user.displayName);
    
  • 另外还要注意,旧版本里的FirebaseAuth.instance.currentUser()是异步方法,新版本已经改成同步的属性FirebaseAuth.instance.currentUser了,这个地方也需要修改,不然后续可能会出现另一个错误。

修改后的完整signup函数代码:

signup(CustomUser user, AuthNotifier authNotifier) async { 
  UserCredential userCredential = await FirebaseAuth.instance 
      .createUserWithEmailAndPassword(email: user.email, password: user.password) 
      .catchError((error) => print(error.code)); 
  if (userCredential != null) { 
    User firebaseUser = userCredential.user; 
    if (firebaseUser != null) { 
      // 直接传入displayName参数更新用户信息
      await firebaseUser.updateProfile(displayName: user.displayName); 
      await firebaseUser.reload(); 
      print("Sign up: $firebaseUser"); 
      // 改用currentUser属性获取当前用户
      User currentUser = FirebaseAuth.instance.currentUser; 
      authNotifier.setUser(currentUser); 
    }
  }
}

额外提醒:

如果你的pubspec.yaml里firebase_auth的版本比较旧,建议升级到最新的稳定版,避免碰到更多API不兼容的问题。升级后记得执行flutter pub get同步依赖。

内容的提问来源于stack exchange,提问作者Jan D.M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 22:42:40