Répondre

0

J'ai l'effet désiré de cette façon:

transaction.run(function(err) { 
    if (err) { 
     res.end(err); 
    } 

    transaction.get(key, function(err, entity) { 
     if (err) { 
      res.end(err); 
     } 
     if (entity) { 
      entity.ImportStatus = InputImportStatus; 
     } else { 
      res.end('No Entity err'); 
     } 

     transaction.save({ 
      key: key, 
      data: entity 
     }); 

     transaction.commit(function(err) { 
      if (!err) { 
       res.send(`Updated`) 
      } else { res.end(err); } 
     }); 
    }); 
}); 
1

Vous voudrez faire une transaction où vous lisez l'entité, mettez à jour la valeur, écrivez l'entité.

function updateEntity (updateKey, newValue) { 
    const transaction = datastore.transaction(); 

    return transaction.run() 
    .then(() => transaction.get(fromKey)) 
    .then((result) => { 
     const entity = result[0]; 

     entity.myProperty = newValue; 

     transaction.save(
     { 
      key: updateKey, 
      data: entity 
     } 
    ); 

     return transaction.commit(); 
    }) 
    .catch(() => transaction.rollback()); 
} 
+0

Je suis toujours incapable de faire la mise à jour, je reçois ' { "textPayload": "Promise {} ", "insertid": "000000-f365b507-72d8-48e2-a3ce-f65052545bb6", "ressource": { "type": "cloud_function", "étiquettes": { "project_id": « ***** * ", " region ":" us-central1 ", " nom_fonction ": "UpdateImportLog" }} , "horodatage": "2017-09-25T11: 57: 45.233Z", "gravité": "INFO", "étiquettes": { "execution_id":" xci8wzhqkbqj " ", "nom_log": "projets/analyseur_crypto-180608/logs/cloudfunctions.googleapis.com% 2FonctionsFoudres", "receiveTimestamp": "***" } ' –