首页 > 解决方案 > 如何在 angularfire 中执行交易?

问题描述

我拥有的代码是它提供了firebase的文档,这是一个简单的增量:

let transaction = this.db.firestore.runTransaction(t => {

    return t.get(query)

    .then(doc => {

    // Add one person to the city population.

    // Note: this could be done without a transaction

    // by updating the population using FieldValue.increment()

    let newPopulation = doc.data().population + 1;

    t.update(query, {population: newPopulation});

    });

    }).then(result => {

    console.log('Transaction success!');

    }).catch(err => {

    console.log('Transaction failure:', err);

    });

但是查询不起作用,

“AngularFirestoreDocument<{}>”类型的参数不能分配给“DocumentReference”类型的参数。“AngularFirestoreDocument<{}>”类型中缺少属性“id”。

谢谢你

标签: firebasegoogle-cloud-firestoreangularfire2angularfire

解决方案


我发现增加原子值的解决方案是

const increment = firebase.firestore.FieldValue.increment(1);

      const query = this.db.collection(nameOfCollection).doc(idDoc);

    query.update({ valIncrement:increment }  )

推荐阅读