I am trying to run this code:
function updateUserLimitations(userId, limitations, batchOrTransaction = undefined) {
const userLimitationsRef = firestore
.collection("users")
.doc(userId)
.collection("limitations")
.doc("userLimitations");
if (batchOrTransaction) {
return batchOrTransaction.set(
userLimitationsRef,
limitations,
{ merge: true }
);
}
return userLimitationsRef.set(limitations, { merge: true });
}
updateUserLimitations(userId, { "messages.totalMessages": admin.firestore.FieldValue.increment(1) });
But...
Instead of getting this doc data in my db:
{ // Doc data
messages: {
initialDate: timestamp, // Date of the first message (I need to preserve it),
totalMessages: 20,
},
}
I am getting:
{
...other doc data...,
messages.totalMessages: 20,
}
I need the set with the merge option, because I am updating and creating if the doc doesn't exist....
Any ideas? Am I doing something wrong here?