Firebase中能否从写入函数返回值直接获取新增用户文档?
直接从Firestore add返回值获取新增文档的方法
Firestore的add()方法执行后,返回的newUserRes其实是文档引用(DocumentReference),它只包含新增文档的ID和路径,本身不会携带文档的实际数据——因为写入操作的设计就是轻量完成,默认不会返回写入内容。
要避免额外的get()请求,最直接的办法是把你传入的userData和返回的文档ID合并:
const newUserRes = await db.collection('users').add(userData); // 合并原有数据和自动生成的ID,得到完整的新增文档数据 const newUser = { ...userData, id: newUserRes.id };
这个方法的前提是:你传入的userData就是最终写入数据库的内容(没有通过Firestore规则或云函数自动追加字段,比如服务器生成的时间戳、计算字段等)。如果有自动生成的字段,那确实没办法绕过get()请求,因为这些字段是服务器端生成的,客户端本地没有这些数据。
内容的提问来源于stack exchange,提问作者Thanh Nhật
相关产品推荐
相关产品推荐

