Firebase创建用户后添加信息报错[cloud_firestore/not-found]
问题分析与解决方案
你遇到的[cloud_firestore/not-found]错误,核心原因是调用了update()方法修改一个不存在的Firestore文档。
Firestore的update()方法仅适用于更新已存在的文档,而新注册用户对应的Users集合下的文档还未创建,因此会触发“文档未找到”的异常。
修正代码
将saveNameUserInFireBase函数中的update替换为set方法即可解决问题:
Future<void> saveNameUserInFireBase(String? userID) async { if (userID != null) { await FirebaseFirestore.instance .collection('Users') .doc(userID) .set({ 'firstName': controllerFirstName!.text, 'lastName': controllerLastName!.text, 'email': controllerEmail!.text, }); } }
额外注意事项
- 务必给Firestore操作加上
await,确保数据写入完成后再继续后续流程,避免异步操作未完成的潜在问题。 - 若后续需要对已存在的用户文档做部分字段更新,再使用
update()方法;首次创建文档必须用set()。 - 如果想保留文档中已有的字段,仅更新指定字段,可以使用带合并选项的
set:
.set({/* 需更新的字段 */}, SetOptions(merge: true))
内容的提问来源于stack exchange,提问作者Laurent Thomas
相关产品推荐
相关产品推荐

