Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firestore FieldValue increment with nested object and variable field-name not working

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
    });
}
like image 799
Tapas Mukherjee Avatar asked Sep 19 '25 01:09

Tapas Mukherjee


1 Answers

This should work:

this.afs.doc('path').update({
   ["count." + attr]: firebase.firestore.FieldValue.increment(1);
});
like image 92
l1b3rty Avatar answered Sep 20 '25 17:09

l1b3rty