文档没有上传字段 (Firestore)
Document does not have the fields uploaded (Firestore)
我一直在尝试更新 firebase 文档中的特定字段,但出于某种原因,即使触发云功能并在文档上执行上传,它也不会上传,字段的值永远不会获取已上传。
每当 "client details" 中的任何字段更新时,触发器函数都会运行,然后它会获取新的字段值。
然后在上传的文档上创建一个引用,以访问要迭代的数组。
然后将文档和文档 ID 传递给一个函数,该函数遍历更新文档中的每个键:值对,然后使用不同文档中的相同键更新字段。
一切正常,没有任何错误,但字段值永远不会更新。
exports.rebuildFormTriggerClientDetails = functions.firestore.
document('clientDetails/{details}').onUpdate((change) => {
const afterDoc = change.after.data();
const documentId = change.after.id
if (afterDoc)
{
let docUsers = db.collection("clientDetails").doc(documentId);
let caseArray: Array<string>;
caseArray = afterDoc.CaseRefArray;
for (var valCase of caseArray) {
console.log(valCase);
console.log(documentId);
createObjectDocument(docUsers,valCase);
}
}
return Promise
});
function createObjectDocument(document: any, caseNumber: String)
{
document.get().then(function(doc: any) {
if (doc.exists) {
console.log("Document data:", doc.data());
for (let [key, value] of Object.entries(doc.data())) {
console.log(`${key}: ${value}`);
if (key != "CaseRefArray")
{
db.collection("casesToExport").doc(caseNumber).update({key : value });
}
}
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function(error: any) {
console.log("Error getting document:", error);
});
[1]: https://i.stack.imgur.com/duhkq.png
尝试解析您的云函数而不是返回承诺。
exports.rebuildFormTriggerClientDetails = functions.firestore.
document('clientDetails/{details}').onUpdate((change) => {
const afterDoc = change.after.data();
const documentId = change.after.id
if (afterDoc)
{
let docUsers = db.collection("clientDetails").doc(documentId);
let caseArray: Array<string>;
caseArray = afterDoc.CaseRefArray;
for (var valCase of caseArray) {
console.log(valCase);
console.log(documentId);
createObjectDocument(docUsers,valCase);
}
}
}).then(() => {
console.log("Successfully updated document!");
}).catch((error) => {
console.error("Error updating document: ", error);
});
我一直在尝试更新 firebase 文档中的特定字段,但出于某种原因,即使触发云功能并在文档上执行上传,它也不会上传,字段的值永远不会获取已上传。
每当 "client details" 中的任何字段更新时,触发器函数都会运行,然后它会获取新的字段值。 然后在上传的文档上创建一个引用,以访问要迭代的数组。
然后将文档和文档 ID 传递给一个函数,该函数遍历更新文档中的每个键:值对,然后使用不同文档中的相同键更新字段。
一切正常,没有任何错误,但字段值永远不会更新。
exports.rebuildFormTriggerClientDetails = functions.firestore.
document('clientDetails/{details}').onUpdate((change) => {
const afterDoc = change.after.data();
const documentId = change.after.id
if (afterDoc)
{
let docUsers = db.collection("clientDetails").doc(documentId);
let caseArray: Array<string>;
caseArray = afterDoc.CaseRefArray;
for (var valCase of caseArray) {
console.log(valCase);
console.log(documentId);
createObjectDocument(docUsers,valCase);
}
}
return Promise
});
function createObjectDocument(document: any, caseNumber: String)
{
document.get().then(function(doc: any) {
if (doc.exists) {
console.log("Document data:", doc.data());
for (let [key, value] of Object.entries(doc.data())) {
console.log(`${key}: ${value}`);
if (key != "CaseRefArray")
{
db.collection("casesToExport").doc(caseNumber).update({key : value });
}
}
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function(error: any) {
console.log("Error getting document:", error);
});
[1]: https://i.stack.imgur.com/duhkq.png
尝试解析您的云函数而不是返回承诺。
exports.rebuildFormTriggerClientDetails = functions.firestore.
document('clientDetails/{details}').onUpdate((change) => {
const afterDoc = change.after.data();
const documentId = change.after.id
if (afterDoc)
{
let docUsers = db.collection("clientDetails").doc(documentId);
let caseArray: Array<string>;
caseArray = afterDoc.CaseRefArray;
for (var valCase of caseArray) {
console.log(valCase);
console.log(documentId);
createObjectDocument(docUsers,valCase);
}
}
}).then(() => {
console.log("Successfully updated document!");
}).catch((error) => {
console.error("Error updating document: ", error);
});