首页 文章

Map 运营商 . 不同的功能类型和访问器

提问于
浏览
0

我最近在我的Ionic项目中更新了Firebase和AngularFire2

版本:

  • Firebase:5.0.3

  • AngularFire2:5.0.0-rc.10

  • rxjs 6.2.0

现在我尝试使用迁移指南将项目从常规 Map 升级到管道:Migration guide AngularFire2 version5

但是,如果我对以下代码块使用完全相同的示例:

///my code
    let dataBaseCollection = this.store.collection('items').snapshotChanges().pipe(
    map(actions => 
    actions.map(a => ({ key: a.key, ...a.payload.val() }))
    )
    ).subscribe(items => {
       return items.map(item => item.key);
   });

    ///example

    afDb.list('items').snapshotChanges().pipe(
    map(actions => 
      actions.map(a => ({ key: a.key, ...a.payload.val() }))
    )
  )

我得到以下例外情况:

'OperatorFunction'类型的参数不能赋值给'UnaryFunction,Observable <{const:string;回报:任何; } [] >>” . 参数'source'和'source'的类型不兼容 . 类型'Observable'不能分配给'Observable'类型 . 存在两种具有此名称的不同类型,但它们是不相关的 . 属性'source'在'Observable'类型中受到保护,但在'Observable'类型中是public .

我已经尝试过来自rxjs的两个不同的运算符

从'rxjs / operators'导入;从'rxjs / operators / map'导入;

我感谢任何帮助 .

2 回答

  • 0

    好吧,我不知道这是不是问题,而是一些观察:

    let dataBaseCollection.subscribe 收到 Subscription 而不是物品 . 您无法在 subscribe 内返回,因此您的代码应该是这样的:

    let dataBaseCollection = this.store.collection('items').snapshotChanges().pipe(
        map(actions => actions.map(a => ({ key: a.key, ...a.payload.val() })))
    )
    

    如果您只想映射键,那么只需:

    let dataBaseCollection = this.store.collection('items').snapshotChanges().pipe(
        map(actions => actions.map(a => a.key))
    )
    
  • 0

    我让它运行起来 .

    我没有真正的线索,实际问题是什么 . 但我完全删除了我的本地存储库并获取了所有新文件 .

    然后我重新安装了所有NPM文件 . 这方面的某个地方是我的问题 . 我猜,我的任何npm软件包都是问题所在 .

    对不起,我不能更多地澄清这个问题 . 也许其他人将来会遇到同样的问题,可以在这里添加 .

相关问题