我是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});
});
答案 0 :(得分:1)
您正在触发名为“患者”的集合中的文档:
exports.updateclient = functions.firestore
.document('patients/{clientId}')
但是您要写回另一个名为“患者”的集合中的文档:
const patientRef = database.collection('patient').doc(clientId);
您是要写回“患者”集合而不是“患者”吗?
答案 1 :(得分:1)
如Doug所述,您尝试在其他集合中更新患者文档。如果确实是错误,请考虑使用
进行更新snap.ref.update({
id: clientId
});
相反。这将使用从函数触发器上获得的快照中获得的现有引用,并且还将使用更新而不是合并集,这在语法上更加正确。它还将有助于防止出现上述潜在错误。