2017-09-09 7 views
0

Ich benutze AngularFireDatabase, um einen Teil meiner Datenbank wie diese zu bekommen wo this.cid ist eine BehaviorSubject die ändern kann. Gehe ich in die falsche Richtung? GrundsätzlichWie erhalten Sie ein Objekt mit einem BehaviorSubject in AngularFire2?

cid: BehaviorSubject<string>; 
account: FirebaseObjectObservable<any>; 
constructor(private db: AngularFireDatabase) { 
    this.cid = new BehaviorSubject<string>('fs2ejD4ds'); 
    this.account = db.object('/accounts/'+this.cid); 

wenn ich this.cid.next('fhEj2jd') laufen will ich es ändern, welche das Objekt wir in Firebase zu verweisen versuchen.

Antwort

0

Für aktuelle Wert von Subject erhalten, können Sie es getValue Methode aufrufen, docs sehen.

this.account = db.object('/accounts/'+this.cid.getValue()); 

Aber bedenken Sie, dass Sie die ursprüngliche beobachtbaren this.account jedes Mal this.cid ‚s aktuelle Wert geändert wurde muss überschrieben werden. Und wenn Sie einfach this.account abonnieren, müssen Sie sich abmelden, bevor Sie sie mit neuen Observablen überschreiben (zum Abmelden können Sie asynchrone Pipes verwenden, um dies automatisch zu tun).

Siehe einfach demo.

Verwandte Themen