加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Angularfire2 Angular2中对FirebaseListObservable列表进

发布时间:2020-12-17 17:06:09 所属栏目:安全 来源:网络整理
导读:我希望从Firebase实时数据库中获取所有用户,并按分数属性对其进行排序.我已经使用变量工作了 用户:FirebaseListObservable any []gt ;; 但是我得到了错误: Type 'Observableany[]' is not assignable to type 'FirebaseListObservableany[]'.Property '_re
我希望从Firebase实时数据库中获取所有用户,并按分数属性对其进行排序.我已经使用变量工作了
用户:FirebaseListObservable< any []&gt ;;
但是我得到了错误:

Type 'Observable<any[]>' is not assignable to type 'FirebaseListObservable<any[]>'.
Property '_ref' is missing in type 'Observable<any[]>'.

如果我将变量更改为
用户:Observable< any []&gt ;;
那么错误消失了,但是我不能使用像.push()和.update()这样的Angularfire方法.

我的提取和排序代码(有效)看起来像:

this.users = this.af.database.list('/users')
  .map(items => items.sort((a,b) => b.score - a.score));

我将不胜感激任何有关如何避免错误或任何首选方式的建议,谢谢!

解决方法

FirebaseListObservable实现 lift,因此RxJS运算符(如map)将返回FirebaseListObservable实例.

就是这样 – 当使用TypeScript时 – RxJS运算符被静态类型化以返回Observable,因此您必须强制转换为FirebaseListObservable. (使用RxJS不必涉及TypeScript,如果你看the guidance for adding operators,你会看到没有提到类型.)

您可以通过查找问题中提到的推送和更新功能来验证是否返回了FirebaseListObservable实例:

this.users = this.af.database
  .list('/users')
  .map(items => items.sort((a,b) => b.score - a.score)) as FirebaseListObservable<any[]>;
console.log(this.users.push.toString());
console.log(this.users.update.toString());

但请注意,这对于作为查询创建的FirebaseListObservable实例不起作用.关于这种情况有一个as-yet-unanswered question.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读