Ionic Appでanglefire2を使用しています。 firebaseノードからユーザIDと一致するすべてのエントリを削除しようとしています。ロイヤリティポイントノードがあり、リセット機能を実行すると、そのユーザーに関連するloyaltypointsノードからすべてのエントリを削除したいと考えています。Angularfire2は一致するUserIDを持つすべてのアイテムを削除します
私は、コンストラクタにこれを追加することによって「myPoints」と呼ばれる変数にすべてのエントリを取得するために管理している:
this.angularfire.auth.subscribe(res => {
if (res != null) {
let userID = res.auth.uid;
this.af.list('/loyaltypoints', {
query: {
orderByChild: 'userId',
equalTo: userID,
}
}).subscribe(response => {
this.myPoints = response;
})
}
})
私は上のremove()関数を実行する方法を知りませんthis.myPoints変数を使用してこれらのエントリをすべて削除します。
はあなたに感謝だから、これはすべてのインポートの最初はそうのように取る、私のために働くようだUPDATE: インポート 'rxjs /追加/オペレータ/取ります';
は、このコードは、すべての関連firebaseのエントリを削除します。this.angularfire.auth.subscribe(res => {
if (res != null) {
let userID = res.auth.uid;
this.af.list('/loyaltypoints', {
preserveSnapshot: true,
query: {
orderByChild: 'userId',
equalTo: userID,
}
}).take(1).subscribe(response => {
console.log(response)
response.forEach((snapshot) => {
this.af.object('/loyaltypoints/' + snapshot.key).remove();
})
})
}
})
これを試してみましたが、私はそれをすべてエラーなしで持っていますが、ionic serve -labを実行すると、forEachが不定になっています。私はconsole.log(this.snapshots)を実行し、それは未定義に戻った。だから1をとり、それを購読すると何も得られないでしょうか? –
何らかの理由で私は変数 'snapshots'を 'response'に変更しました。あなたはそれを信じますか?どのように非常に奇妙な?あなたの驚くべきガイダンスに感謝しています。私はあなたなしではできなかった! –