Создание и обновление сущности хранилища данных Google - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь обновить объект в моем виде хранилища данных, используя пример кода отсюда https://cloud.google.com/datastore/docs/reference/libraries. Фактический код выглядит примерно так:

/ Imports the Google Cloud client library
const Datastore = require('@google-cloud/datastore');

// Your Google Cloud Platform project ID
const projectId = 'YOUR_PROJECT_ID';

// Creates a client
const datastore = new Datastore({
  projectId: projectId,
});

// The kind for the new entity
const kind = 'Task';
// The name/ID for the new entity
const name = 'sampletask1';
// The Cloud Datastore key for the new entity
const taskKey = datastore.key([kind, name]);

// Prepares the new entity
const task = {
  key: taskKey,
  data: {
    description: 'Buy milk',
  },
};

// Saves the entity
datastore
  .save(task)
  .then(() => {
    console.log(`Saved ${task.key.name}: ${task.data.description}`);
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

Я пытался создатьновый объект с использованием этого кода.Но когда я запустил этот код и проверил консоль хранилища данных, не было создано прав доступа . Также я не могу обновить существующую сущность.В чем может быть причина этого?

Я пишу код в Google Cloud Functions. Это журнал, когда я запускаю эту функцию:

 {
 insertId: "-ft02akcfpq"  
 logName: "projects/test-66600/logs/cloudaudit.googleapis.com%2Factivity"  
 operation: {…}  
 protoPayload: {…}  
 receiveTimestamp: "2018-06-15T09:36:13.760751077Z"  
 resource: {…}  
 severity: "NOTICE"  
 timestamp: "2018-06-15T09:36:13.436Z"  
}

{
 insertId: "000000-ab6c5ad2-3371-429a-bea2-87f8f7e36bcf"  
 labels: {…}  
 logName: "projects/test-66600/logs/cloudfunctions.googleapis.com%2Fcloud-functions"  
 receiveTimestamp: "2018-06-15T09:36:17.865654673Z"  
 resource: {…}  
 severity: "ERROR"  
 textPayload: "Warning, estimating Firebase Config based on GCLOUD_PROJECT. Intializing firebase-admin may fail"  
 timestamp: "2018-06-15T09:36:09.434Z"  
}

1 Ответ

0 голосов
/ 12 июня 2018

Я попробовал тот же код, и он работает для меня.Однако я заметил, что до появления сущностей в Datastore произошла задержка.Чтобы обновить и перезаписать существующие объекты, используйте .upsert(task) вместо .save(task) (ссылка на документацию GCP) .Вы также можете использовать .insert(task) вместо .save(task) для хранения новых объектов.

Также убедитесь, что идентификатор проекта правильный и что вы проверяете сущности на предмет правильного вида.

...