В Firestore вы можете обновить поля во вложенных объектах точечной нотацией (https://firebase.google.com/docs/firestore/manage-data/add-data?authuser=0#update_fields_in_nested_objects).. Интересно, как заставить это работать в Typescript / Javascript.
Например, следующий объект:
const user = {
id: 1
details: {
name: 'Max',
street: 'Examplestreet 38',
email: {
address: 'max@example.com',
verified: true
}
},
token: {
custom: 'safghhattgaggsa',
public: 'fsavvsadgga'
}
}
Как я могу обновить этот объект со следующими изменениями:
details.email.verified = false;
token.custom = 'kka';
Я уже обнаружил, что Lodash имеет функцию набора:
_.set(user, 'details.email.verified', false);
Недостаток: Мне нужносделать это для каждого изменения. Является ли это уже метод для обновления объекта с помощью объекта (как сделал Firestore)?
const newUser = ANYFUNCTION(user, {
'details.email.verified': false,
'token.custom' = 'kka'
});
// OUTPUT for newUser would be
{
id: 1
details: {
name: 'Max',
street: 'Examplestreet 38',
email: {
address: 'max@example.com',
verified: false
}
},
token: {
custom: 'kka',
public: 'fsavvsadgga'
}
}
Кто-нибудь знает хорошее решение для этого? Я уже нашел больше решений, если я толькохотите изменить одно поле ( Динамически установить свойство вложенного объекта ), но нет решения для более чем одного поля с одним методом