【问题标题】:How to add the key to an object added to a node in angularfire 2 version 5如何在angularfire 2版本5中将密钥添加到添加到节点的对象
【发布时间】:2018-07-08 15:44:09
【问题描述】:

我曾经能够像这样在 angularfire2 v.4.x 中将密钥添加到对象本身:

addMatchToDb(match: any){
    let ref = this.db.object('matches/');
    let matchId = this.matches.push(match).key;
    let updates = {};
    updates['/matches/' + matchId + '/id'] = matchId;
    updates['/matches/' + matchId + '/matchCreated'] = firebase.database.ServerValue.TIMESTAMP;
    firebase.database().ref().update(updates);
  }

因为我得到一个错误

错误 TS2339:“可观察”类型上不存在属性“推送”'

,我想过重构为:

addMatchToDb(match: any){
    let ref = this.db.object('matches/');
    let matchId = ref.update(match);
  }

但现在我无法将密钥添加为 id 或时间戳。鉴于版本 5 的新变化有什么建议吗?

更新:关于 this.matches 的一些细节:

export class DatabaseService {
  matches:Observable<any>;
  weightClasses:Observable<any>;
  giRanks:Observable<any>;
  noGiRanks:Observable<any>;
  ageClasses:Observable<any>;
  users:Observable<any>;
  currentUser:Observable<any>;
  moves:Observable<any>;
  retrievedMatch:Observable<any>;

  constructor(private db: AngularFireDatabase, private textTransformationService: TextTransformationService) {
    this.matches = db.list<Match>('/matches').valueChanges();
    this.weightClasses = db.list<string>('/weightClasses').valueChanges();
    this.giRanks = db.list<string>('/giRanks').valueChanges();
    this.noGiRanks = db.list<string>('/noGiRanks').valueChanges();
    this.ageClasses = db.list<string>('/ageClasses').valueChanges();
    this.users = db.list<User>('/users').valueChanges();
    this.moves = db.list<string>('/moves').valueChanges(); //TODO maybe JSON?
  }

【问题讨论】:

  • 你是如何定义matches的?
  • 如同,Match 模型充实了吗?是的。
  • 抱歉,我说的是this.matches。它是用 AngularFireList 定义的吗?
  • 啊,我明白了。在上面添加了详细信息。

标签: javascript angular firebase firebase-realtime-database angularfire2


【解决方案1】:

我不是 sur,但您的推送必须在 db.list&lt;Match&gt;('/matches') 而不是 db.list&lt;Match&gt;('/matches').valueChanges(); 上完成

因此您可以将类型 AngularFireList 添加到您的变量 db.list&lt;Match&gt;('/matches') 并获取推送/更新/删除方法

【讨论】:

  • Wom wom。谢谢,@Wandrille
猜你喜欢
  • 1970-01-01
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 2014-08-24
  • 1970-01-01
  • 2016-06-14
相关资源
最近更新 更多