Я полагаю, что ваша проблема находится в следующих нескольких строках, начиная с
var form_path = 'address.street_no.complete_address';
Далее, вы используете dataRef.doc(key+"."+form_path)
, что означает, что установлен только документ
/addressCollection/key.{addressCollectionId}
и addressCollectionId
, являющиеся address.street_no.complete_address
Вместо этого вы хотите получить доступ к свойству в документе с помощью точечной нотации, например, так.
address: {
street_no: {
complete_address
Пример. * * Один тысяча двадцать-одна
someDocument.update({
"address.street_no.complete_address": "some_data"
});
Обратите внимание, что "some_data" заменит все данные, которые хранятся в данный момент. Вы хотите сделать одно чтение и объединить данные. Например.
const anotherAddress = { address: "123 Fake Street" };
const document = firebase
.firestore()
.collection("addressCollection")
.doc("someAddressId");
document
.get()
.then(snap => {
const data = snap.data();
const completeAddress = data.address.street_no.complete_address };
// We're using the spread operator here to combine the current completeAddress with anotherAddress
return { completeAddress, ...anotherAddress };
})
.then(newCompleteAddress =>
document.update({
"address.street_no.complete_address": newCompleteAddress
})
);