问题
I understand to use Firestore FieldValue increment
function in the nested object I need to mention the completed path in the update
method. My Ionic 5 project's main method takes the name of the field of the object. Following are the ways I have tried to use it
updateCounter(attr: string){
Way1:
let obj = {};
obj[attr] = firebase.firestore.FieldValue.increment(1); //This is working
obj.count[attr] = firebase.firestore.FieldValue.increment(1); //This is not working. Value is always 1
this.afs.doc('path').update(obj);
Way2:
this.afs.doc('path').update({
'count.${attr}': firebase.firestore.FieldValue.increment(1); //Creating a field called '${attr}' and not replacing the value;
});
Way3:
this.afs.doc('path').update({
`count.${attr}`: firebase.firestore.FieldValue.increment(1); //Error as '``' value not accepted in the function
});
}
回答1:
This should work:
this.afs.doc('path').update({
["count." + attr]: firebase.firestore.FieldValue.increment(1);
});
来源:https://stackoverflow.com/questions/62795280/firestore-fieldvalue-increment-with-nested-object-and-variable-field-name-not-wo