我正在开发一个用 TypeScript 编写的 Firebase Cloud Functions,它应该将实例 Map() 保存到 Cloud Firestore。(地图的键是用户 ID,值是具有 2 个简单属性的对象;由于键的性质,我无法在运行前知道它们。)尝试直接保存地图对象时,我得到:参数“data”的值不是有效的 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:元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“{}”。在“{}”类型上找不到带有“字符串”类型参数的索引签名。我尝试的另一件事是使用JSON.stringify(memberDetailsMap) - 但这导致了一个空对象。不幸的是,我不知道如何解决这个问题。你对此有一些提示/解决方案吗?谢谢你的帮助!
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
您可以通过显式设置类型来解决此问题memberDetailsMap:
let memberDetailsMap: { [key: string]: any} = {};添加回答
举报
0/150
提交
取消
