UserUpdateInfo报错求助:已知其已废弃,试遍方案仍无法解决
解决UserUpdateInfo废弃导致的错误问题
- Firebase Auth的
UserUpdateInfo类已被官方废弃,更新用户资料无需再实例化该类,直接通过User对象的updateProfile方法传入参数即可。 - 注意:
UserCredential返回的user可能为空,需做非空判断;且updateProfile是异步方法,必须添加await确保执行完成。
修改后的代码:
signup() async { if (_formKey.currentState!.validate()) { _formKey.currentState?.save(); try { UserCredential userCredential = await _auth.createUserWithEmailAndPassword( email: _email, password: _password); if (userCredential.user != null) { await userCredential.user!.updateProfile( displayName: _name, // 如需更新头像可添加:photoUrl: "你的头像URL" ); // 可选:调用reload确保本地用户信息与云端同步 await userCredential.user!.reload(); } } catch (e) { showError(e.toString()); } } }
关键修改说明:
- 移除
UserUpdateInfo实例化逻辑,直接在updateProfile中传入displayName参数 - 重命名变量为
userCredential,避免与内部User对象混淆 - 对
userCredential.user做非空校验后再执行操作 - 为
updateProfile添加await,保证异步操作执行完成 - 可选添加
reload()方法,确保本地缓存的用户信息和云端一致
内容的提问来源于stack exchange,提问作者Nihar Shah
相关产品推荐
相关产品推荐

