Я работаю над облачными функциями Firebase, написанными на TypeScript, которые должны сохранять экземпляр Map () в Cloud Firestore. (Ключ карты - это идентификатор пользователя, а значение - это объект с 2 простыми атрибутами; из-за природы ключей я не могу знать их до выполнения.) При попытке сохранить объект карты напрямую, я получаю :
Значение аргумента «данные» не является допустимым документом Firestore. Входные данные не являются простым JavaScript объектом (находится в поле "member_details")
Другой подход состоял в том, чтобы избежать использования объекта Map () и инициализировать его с помощью {} - как это:
let memberDetailsMap = {};
this.memberDetails.forEach(md => {
let payload = {
"name": md.name,
"age": md.age,
}
memberDetailsMap[md.uid] = payload; // <- !!!!!!!! ERROR
})
Это даже не позволяет мне скомпилировать TS в JS с сообщением:
Элемент неявно имеет тип 'any', потому что выражение типа 'string' не может быть используется для индексации типа '{}'. Не найдено сигнатуры индекса с параметром типа 'string' для типа '{}'.
Еще одна вещь, которую я попробовал, это использовать JSON .stringify (memberDetailsMap) - но это привело к пустому объекту.
К сожалению, я понятия не имею, как обойти эту проблему. У вас есть подсказка / решение для этого?
Спасибо за помощь!