Javascript 如何使用firebase云函数更新firestore文档的值

Javascript 如何使用firebase云函数更新firestore文档的值,javascript,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Firebase,Google Cloud Firestore,Google Cloud Functions,我有firestore数据库,我想在firestore文档的某个字段发生更改时触发云函数。我希望云计算功能查看发生了什么变化,并使用新数据更新firestore文档的另一个字段 范例 假设图片中的文档已更改,并具有下图中的新值 现在,我想将精度的值更新为成功/尝试,即我希望精度为6/11=0.54 我应该在函数中写什么?这是我到目前为止所拥有的 exports.calculateAccuracy = functions.firestore.document('/users/{userId}/w

我有firestore数据库,我想在firestore文档的某个字段发生更改时触发云函数。我希望云计算功能查看发生了什么变化,并使用新数据更新firestore文档的另一个字段

范例

假设图片中的文档已更改,并具有下图中的新值

现在,我想将
精度
的值更新为
成功/尝试
,即我希望精度为6/11=0.54

我应该在函数中写什么?这是我到目前为止所拥有的

exports.calculateAccuracy = functions.firestore.document('/users/{userId}/wordScores')
    .onUpdate((change, context) => {

      //what to write here?

    });
额外问题:我将使用多少读取/写入来更新精度


谢谢

下面的内容应该可以做到这一点。注意云Firestore触发器中的路径(
users/{userId}/wordScores/{scoreDocId}
):它指向一个文档,而不是一个集合。更多信息请访问


下面的内容应该可以做到这一点。注意云Firestore触发器中的路径(
users/{userId}/wordScores/{scoreDocId}
):它指向一个文档,而不是一个集合。更多信息请访问


非常感谢!您知道我使用此函数调用了多少读写操作吗?您将支付Firestore文档的更新费用。还有函数调用等。有关定价的更多信息,请参阅以下文档/文章:,非常感谢!您知道我使用此函数调用了多少读写操作吗?您将支付Firestore文档的更新费用。但也要了解函数调用等。有关定价的更多信息,请参阅以下文档/文章:,
exports.calculateAccuracy = functions.firestore
    .document('users/{userId}/wordScores/{scoreDocId}')
    .onUpdate((change, context) => {

        const newValue = change.after.data();
        const previousValue = change.before.data();

        if ((newValue.attempts !== previousValue.attempts) || (newValue.successes !== previousValue.successes)) {
            return change.after.ref.update({
                accuracy: newValue.successes / newValue.attempts
            });

        } else {
            return null;
        }

    });