在创建时将数据写入文档

时间:2018-09-17 17:17:03

标签: javascript typescript firebase google-cloud-firestore

我是Firebase云功能的新手,我试图在每次创建文档时将数据写到文档中,但是从未写入数据,并且在控制台中也没有出现错误。我错过了什么?我正在使用Firestore。

exports.updateclient = functions.firestore
  .document('patients/{clientId}')
  .onCreate(async (snap, context) => {
    const database = admin.firestore();
    const settings = {timestampsInSnapshots: true};
    database.settings(settings);
    const clientId= context.params.clientId;
    const patientRef = database.collection('patient').doc(clientId);
    return patientRef.set({ id: clientId}, {merge: true});
  });

2 个答案:

答案 0 :(得分:1)

您正在触发名为“患者”的集合中的文档:

exports.updateclient = functions.firestore
  .document('patients/{clientId}')

但是您要写回另一个名为“患者”的集合中的文档:

const patientRef = database.collection('patient').doc(clientId);

您是要写回“患者”集合而不是“患者”吗?

答案 1 :(得分:1)

如Doug所述,您尝试在其他集合中更新患者文档。如果确实是错误,请考虑使用

进行更新
snap.ref.update({
    id: clientId
});

相反。这将使用从函数触发器上获得的快照中获得的现有引用,并且还将使用更新而不是合并集,这在语法上更加正确。它还将有助于防止出现上述潜在错误。