При обновлении документа в Firestore я хочу сохранить большую часть документа, но изменить одно свойство, содержащее объект.
Что у меня есть
{
name: "John Doe",
email: "me@example.com",
friends: {
a: {...},
b: {...},
c: {...},
d: {...},
e: {...},
f: {...},
}
}
Теперь у меня есть новый объект друзей, такой как {x: ..., y: ..., z: ...}
Я хочу перезаписать дерево friends
моего документа, но оставить все остальные поля.
Что яхочу, чтобы это выглядело как
{
name: "John Doe",
email: "me@example.com",
friends: {
x: {...},
y: {...},
z: {...},
}
}
Однако, если я сделаю firestore.doc(...).update({friends: {...}}, { merge: true })
То, что я в настоящее время получаю
{
name: "John Doe",
email: "me@example.com",
friends: {
a: {...},
b: {...},
c: {...},
d: {...},
e: {...},
f: {...},
x: {...},
y: {...},
z: {...},
}
}
Я знаю, что могу сделать два обновления, то есть удалить поле и затем установить его заново, или я могу прочитать документ, изменить объект и сохранить его без слияния.
Но разве не существует разумного способа перезаписать объект (карту), не затрагивая остальную часть документа?