私はangularfire2を使ってAngularアプリを使っていますが、firebaseのいくつかの異なるテーブルから情報を削除するメソッドを使用しています。Observableの中に約束を返します
removeTeam(key: string) {
const dataToRemove = {};
dataToRemove[`teams/${key}`] = null;
this.findMembersInTeam(key).subscribe(members => {
members.forEach(member => {
dataToRemove[`members/${member}/teams/${key}`] = null;
});
this.sdkDB.update(dataToRemove);
});
}
だから、これは何をするか、基本的に/ //チーム/チームを削除する/しても、チーム内のすべてのメンバーのために、チームを削除し、その/メンバーを削除しています。
は私がやっていることは、チーム内のメンバーのリストを取得し、これをサブスクライブの内側に、観測可能であるように私は、「クエリ」を構成し、this.sdkDB.update(dataToRemove)
この最後の方法は、約束を返すとそれを実行し、それは私がメソッドremoveTeam
の結果として返すものです、それを行う方法はありますか? subscribe
の代わりに(flatMapはmergeMapの単なる別名である)、観察可能
import 'rxjs/add/operator/toPromise';
// ...
removeTeam(key: string) {
const dataToRemove = {};
dataToRemove[`teams/${key}`] = null;
return this.findMembersInTeam(key)
.toPromise()
.then(members => {
members.forEach(member => {
dataToRemove[`members/${member}/teams/${key}`] = null;
});
return this.sdkDB.update(dataToRemove);
});
}
どのように 'removeTeam'を呼びますか?あなたはそれで何をしていますか? –