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.
相关产品推荐
相关产品推荐

