Firebase批量写入集合文档时自动添加UserID的实现方法
给Firestore写入的文档添加UserID字段的两种方法
方法一:写入时合并字段(推荐,不修改原数组)
不用改动原FoodSample数组,在调用set方法时,把原文档的所有字段和UserID字段合并即可,用对象展开运算符就能轻松实现:
const userId = id.user.uid; // 先获取当前用户的ID FoodSample.forEach((doc) => { firebaseConfig.firestore().collection("customers").doc().set({ ...doc, // 展开原文档的Category、Name、Weight等字段 UserID: userId // 新增UserID字段 }); });
这种方式不会污染原数组数据,后续如果还需要使用原始的FoodSample数组,不受任何影响,是更稳妥的做法。
方法二:直接修改原数组元素
如果业务场景确实需要修改原数组,可以在遍历的时候直接给每个对象添加UserID字段:
const userId = id.user.uid; FoodSample.forEach((doc) => { doc.UserID = userId; // 给原对象新增UserID字段 firebaseConfig.firestore().collection("customers").doc().set(doc); });
注意:这种方式会改变FoodSample数组里的原始对象,之后再使用这个数组时,所有元素都会带有UserID字段,按需选择即可。
内容的提问来源于stack exchange,提问作者Paul VI
相关产品推荐
相关产品推荐

