首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularFire修复属性'map‘在'Action<DocumentSnapshot<any>>’类型上不存在

AngularFire修复属性'map‘在'Action<DocumentSnapshot<any>>’类型上不存在
EN

Stack Overflow用户
提问于 2018-08-14 13:21:36
回答 1查看 2.2K关注 0票数 3

我正在跟踪集合上的[消]火源文档,并且无法理解为什么在尝试使用文档id检索文档集合时,我的代码不能按照文档的工作方式工作。

我的IDE显示了以下错误:

属性'map‘在'Action< DocumentSnapshot< any>>’类型上不存在。

关于下列代码:

代码语言:javascript
复制
this.userDocRef = this.afs.doc<any>(`users/${user.uid}`);
this.userDoc$ = this.userDocRef.snapshotChanges().pipe(
  map(actions => {
    return actions.map(a => { // error throws here
      const data = a.payload.doc.data() as any;
      const id = a.payload.doc.id;
      return { id, ...data };
    })
  })
)

当我运行这段代码时,我会得到以下错误:

错误TypeError: actions.map不是一个函数

如何重构它以使其正常工作?

代码语言:javascript
复制
"firebase": "^5.0.4"
"@angular/core": "^6.1.0"
"angularfire2": "^5.0.0-rc.10"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-14 13:35:59

映射代码是错误的:

代码语言:javascript
复制
map(actions => {
    return actions.map(a => { // error throws here
      const data = a.payload.doc.data() as any;
      const id = a.payload.doc.id;
      return { id, ...data };
    })
 })

这用于映射集合。您不是在监视一个集合,而是一个文档

尝试:

代码语言:javascript
复制
this.userDoc$ = this.userDocRef.snapshotChanges()
    .pipe(
        map(action => {
            const data = action.payload.data();
            const id = action.payload.id;
            return { id, ...data };
        })
     );
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51842530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档