我最近在我的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 回答
好吧,我不知道这是不是问题,而是一些观察:
let dataBaseCollection
从.subscribe
收到Subscription
而不是物品 . 您无法在subscribe
内返回,因此您的代码应该是这样的:如果您只想映射键,那么只需:
我让它运行起来 .
我没有真正的线索,实际问题是什么 . 但我完全删除了我的本地存储库并获取了所有新文件 .
然后我重新安装了所有NPM文件 . 这方面的某个地方是我的问题 . 我猜,我的任何npm软件包都是问题所在 .
对不起,我不能更多地澄清这个问题 . 也许其他人将来会遇到同样的问题,可以在这里添加 .