2017-09-09 6 views
0

AngularFireDatabase를 사용하여 데이터베이스의 일부분을 db.object('/accounts/'+this.cid);으로 가져오고, 여기에서 this.cid은 변경할 수있는 BehaviorSubject입니다. 내가 잘못된 방향으로가는거야? 내가 this.cid.next('fhEj2jd')를 실행할 때마다 AngularFire2에서 BehaviorSubject를 사용하여 Object를 얻으려면 어떻게해야합니까?

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

는 기본적으로 나는 우리가 중포 기지에서 참조하려는 반대하는 변경하고 싶습니다.

답변

0

Subject에서 현재 값을 얻기 위해, 당신은 그것을 getValue 메소드의 호출 docs 볼 수 있습니다.

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

그러나 원래 관찰 this.account에게 this.cid의 현재 값이 변경 될 때마다 덮어 쓰기해야합니다 명심하십시오. this.account에 가입하면 구독을 취소해야 새로운 관찰 가능 항목을 덮어 씁니다 (구독 취소의 경우 비동기 파이프를 사용하여 자동으로 처리 할 수 ​​있음).

demo을 참조하십시오.