Is it possible to include admin.firestore.FieldValue.serverTimestamp() in an array when using the update() method? I'm trying to achieve something like this:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp(functions.config().firebase);
exports.sendNote = functions.https.onCall(async(data,context)=>{
const numeroSender: string = data['numeroSender'];
const amisA = admin.firestore().collection('Amis').doc(numeroReceiver);
const connaissanceABBA:number = 3.0;
const version:number = 1;
const time = admin.firestore.FieldValue.serverTimestamp();
await amisA.update({
[`amis.${numeroSender}`] : [time,connaissanceABBA,version]
});
});
However, I am encountering the following error:
Error: Update() requires either a single JavaScript object or an alternating list of field/value pairs that can be followed by an optional precondition. Value for argument "dataOrField" is not a valid Firestore value. FieldValue.serverTimestamp() cannot be used inside of an array (found in field `amis.+33651177261`.`0`).
at WriteBatch.update (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/build/src/write-batch.js:367:23)
at DocumentReference.update (/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/build/src/reference.js:372:14)
at Object.<anonymous> (/user_code/lib/index.js:121:25)
at next (native)
at fulfilled (/user_code/lib/index.js:4:58)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)