Firebase Vuexfire{serialize}选项未正确格式化数组

Firebase Vuexfire{serialize}选项未正确格式化数组,firebase,vue.js,vuex,vuefire,vuexfire,Firebase,Vue.js,Vuex,Vuefire,Vuexfire,我在查询集合时尝试添加所有Firestore文档ID。我可以查询实例中的所有集合,但不能将它们的文档ID绑定到集合数组 这是我的代码,用于在名为product.js的vuex文件中查询用户的所有产品 从“vuexfire”导入{firestoreAction} 从'@/firebase/init'导入{db} 常量状态={ 产品:[] } 常量getters={} 常量动作={ 初始化:firestoreAction(上下文=>{ const allProducts=db.collection(

我在查询集合时尝试添加所有Firestore文档ID。我可以查询实例中的所有集合,但不能将它们的文档ID绑定到集合数组

这是我的代码,用于在名为product.js的vuex文件中查询用户的所有产品

从“vuexfire”导入{firestoreAction}
从'@/firebase/init'导入{db}
常量状态={
产品:[]
}
常量getters={}
常量动作={
初始化:firestoreAction(上下文=>{
const allProducts=db.collection(`users/${context.rootState.authentication.user.uid}/products`)
context.bindFirestoreRef(
"产品",,
所有产品,{
等等:是的,
序列化:doc=>{
//log(doc.id)-返回我正在查找的id
return Object.defineProperty(doc.data(),'id'{
值:doc.id
})
}
}
)
})
}
然后我得到这个数据

[
{
“名称”:“产品1”
},
{
“名称”:“产品2”
}
]
我希望通过以下方式将数据传递给vuex:

[
{
“id”:“kmp1Ue8g0I130XZ3Ttqd”,
“名称”:“ll”
},
{
“id”:“qswtcdmnxNxbwmPNR1S3”,
“名称”:“fdsfs”
}
]

当我使用
console.log(doc.id)
时,上面的id会显示出来,但我没有得到带有id值的预期数组,只有productname

这是因为您无法修改
doc.data()返回的对象

使用“对象扩展”操作符创建新的平面对象时,应执行以下操作:

return {
   id: doc.id,
   ...doc.data()
 }

工作得很有魅力!非常感谢