Firebase / Angular2:如何使用AngularFire2增加Firebase中的记录?

时间:2017-02-06 10:03:09

标签: angular firebase firebase-realtime-database angularfire2

我想使用AngularFire2在firebase中增加记录,下面是我的方法:

     const productsQuerry = this.af.database.list('/products/'+productKey,{ preserveSnapshot: true });
     const productUpdate = this.af.database.list('/products');
     productsQuerry.subscribe(snapshots => {
            snapshots.forEach(snapshot => {
            if (snapshot.key == "quantity") {
                productUpdate.update(productKey,{quantity: snapshot.val()+1});
            }
            });          
     });

但是,这不仅仅是一次性地增加数量,而是产生无限循环和数量"记录变得太大了,

任何帮助人员?

非常感谢,

1 个答案:

答案 0 :(得分:3)

问题在于您订阅了每个值的变化,这就是您进入无限循环的原因。尝试将take(1)添加到subscribe方法。

const productsQuerry = this.af.database.list('/products/'+productKey,{ preserveSnapshot: true });
 const productUpdate = this.af.database.list('/products');
 productsQuerry.subscribe(snapshots => {
        snapshots.forEach(snapshot => {
        if (snapshot.key == "quantity") {
            productUpdate.update(productKey,{quantity: snapshot.val()+1});
        }
        });          
 }).take(1);

在这种情况下,它应该只取一次值。