Добавьте {merge: true}
в качестве второго аргумента к set
, и он будет обновлять только предоставленные поля.
firebase.firestore()
.collection("projects")
.doc(id)
.set({
imgUrl: imgUrl,
}, {merge: true})
}
Подробнее об этом в документации здесь https://firebase.google.com/docs/firestore/manage-data/add-data#set_a_document
Если вы хотите обновить только один элемент, просто передайте один элемент. Так что updateDataProjects(,, imgUrl)
. Но вы должны знать, чтобы передать его в качестве третьего аргумента, поэтому после двух запятых.
Лучшим решением было бы преобразовать параметры в один объект, чтобы вам не приходилось беспокоиться о порядке аргументов. Таким образом, вызов становится updateDataProjects({id, companyName, imgUrl, userOrderCollection})
. Тогда вы можете разрушить ту же самую опору в своей функции, как и const updateDataProjects = ({id, companyName, imgUrl, userOrderCollection}) => {...}
. Если вам нужно только одно поле, передайте только одно в updateDataProjects({imgUrl})
, и порядок больше не имеет значения.