Firebase 如何在javascript中删除firestore中索引处的数组元素
Firebase 如何在javascript中删除firestore中索引处的数组元素,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我有一个由数组填充组成的集合检查,填充中有一些对象我想匹配填充中的数据并删除firestore中索引的值。arrayRemove()仅适用于要删除的数组项的完整值。按索引删除项目不起作用。事实上,Firestore不提供任何通过索引直接修改数组项的方法 您需要做的是读取文档,根据需要修改内存中的“填充”数组,然后使用新值将文档更新回文档。如果这对您有效,请使用映射而不是数组,必要时放入虚拟值。然后可以直接删除该字段 var arr = [ "GKRLrcpSL2BmKx3BfvWj","
我有一个由数组填充组成的集合检查,填充中有一些对象我想匹配填充中的数据并删除firestore中索引的值。arrayRemove()仅适用于要删除的数组项的完整值。按索引删除项目不起作用。事实上,Firestore不提供任何通过索引直接修改数组项的方法
您需要做的是读取文档,根据需要修改内存中的“填充”数组,然后使用新值将文档更新回文档。如果这对您有效,请使用映射而不是数组,必要时放入虚拟值。然后可以直接删除该字段
var arr = [ "GKRLrcpSL2BmKx3BfvWj","fMwH404fweoFJJqyE5Nf" , "DTurwbw64CWw4WosUQtC" ] //
arr.forEach((element) => {
console.log(element);
db.collection("Check").doc(element).get().then((docs) => {
var data = docs.data();
var arr = data.fill;
arr.forEach((item) => {
if(item['check'] == 'a') {
db.collection("Check").doc(element).update({
fill: firebase.firestore.FieldValue.arrayRemove('check')
}).then((val) => {console.log("Updated")})
}
});
});
});
我的解决方案基于指定要删除的项目ID,例如:
fill: {
a: xxx,
b: xxx,
check: xxx
}
db.collection("Check").doc(element).update({
fill.check: firebase.firestore.FieldValue.delete()
})
firebase
.firestore()
.collection('projects') // Collection
.doc(project.id) // ID string
.delete() // Promise