首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从Firestore读取地图

如何从Firestore读取地图
EN

Stack Overflow用户
提问于 2020-09-17 07:18:12
回答 1查看 142关注 0票数 0

我正在尝试将Firestore中的数据读取到我的TypeScript项目中。

在Firestore中,mapName字段下有一个映射

使用JSON.stringify(change.after.data())时得到的以下数据结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const test: Test = {
  mapName: {
    "v3mioXc3VoFgfj0WEq": {
      isNormalSubscription: false,
    },
    "as12oXc3VoFas12WEq": {
      isNormalSubscription: true,
    },
  },
};

interface Test {
  mapName: Map<string, any>
}

我得到了以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Type '{ v3mioXc3VoFgfj0WEq: { isNormalSubscription: false; }; }' is not assignable to type 'Map<string, any>'.
  Object literal may only specify known properties, and '"v3mioXc3VoFgfj0WEq"' does not exist in type 'Map<string, any>'.

由于v3mioXc3VoFgfj0WEqas12oXc3VoFas12WEq是我事先不知道的Firestore,我应该如何更改测试接口以正确管理数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-17 07:24:42

Firestore不接受或返回ES6 Map类型对象。它只适用于普通的旧JavaScript对象。当您在一个data()上调用DocumentSnapshot时,您会得到其中一个普通对象。对象的属性与文档中的字段匹配。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const obj = snapshot.data()   // plain object
const mapName = obj.mapName   // another plain object
const field1 = mapName.v3mioXc3VoFgfj0WEq
const field2 = mapName.as12oXc3VoFas12WEq

如果您希望使用Map对象,则必须将普通对象转换为新的Map。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63941195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文