How exactly do you update a specific value in a list based on it's index?
(如何根据索引精确地更新列表中的特定值?)
For example, in the following list:(例如,在下面的列表中:)
0 [
{
first_name: name0,
last_name: lastName0,
}
]
1 [
{
first_name: name1,
last_name: lastName1,
}
]
How can I update only "lastName1"?
(如何仅更新“ lastName1”?)
At the moment, I'm using a bit of a hacky solution using ArrayUnion, which uses data comparison instead of the actual index (I load the values into a form, delete the original value and then re-add it again):(目前,我正在使用一些使用ArrayUnion的解决方案,该解决方案使用数据比较而不是实际的索引(我将这些值加载到表单中,删除了原始值,然后再次将其重新添加):)
// Retrieve data at index, load into form
// Remove that index from List
await Firestore.instance.collection(col).document(doc).updateData({
'people': FieldValue.arrayRemove([person])
});
// Make changes to data via form
// Save back to list
await Firestore.instance.collection(col).document(doc).updateData({
'people': FieldValue.arrayUnion([person])
});
Is there a function that will allow me to specify which specific index's data to update?
(有没有可以让我指定要更新哪个特定索引数据的功能?)
Something like (but using a List, not Map):(诸如此类(但使用列表而不是地图):)
await Firestore.instance.collection(col).document(doc).updateData({
'people.$index.lastName1': 'newName')
});
ask by Mr Jax translate from so