Эмулятор хранилища данных создает пустой index.yaml - удаленный Firebase вызывает ошибку, а локальный - нет - PullRequest
1 голос
/ 24 января 2020
  • Google App Engine в Node.js на Windows 10
  • Я использую эмулятор Googles Datastore для локальной разработки в соответствии с этим учебным пособием .
  • I используйте этот Node.js учебник для создания и запроса данных в хранилище данных.

Когда я использую локальный эмулятор, все работает нормально. Когда я использую удаленное хранилище данных из моего локального проекта, я получаю следующее сообщение об ошибке:

Error: 9 FAILED_PRECONDITION: no matching index found.
    at Object.callErrorFromStatus (C:\Users\Code\google-cloud\nodejs-docs-samples\appengine\datastore\node_modules\@grpc\grpc-js\build\src\call.js:30:26)
    at Http2CallStream.call.on (C:\Users\Code\google-cloud\nodejs-docs-samples\appengine\datastore\node_modules\@grpc\grpc-js\build\src\client.js:96:33)
    at Http2CallStream.emit (events.js:203:15)
    at process.nextTick (C:\Users\Code\google-cloud\nodejs-docs-samples\appengine\datastore\node_modules\@grpc\grpc-js\build\src\call-stream.js:97:22)
    at process._tickCallback (internal/process/next_tick.js:61:11)

Предполагается, что при запуске эмулятора в каталоге ~gcloud\emulators\datastore\WEB-INF\index.yaml создается индекс. Файл пуст после запуска эмулятора и запуска запроса из проекта:

app. js

/**
 * Retrieve the latest 10 visit records from the database.
 */
const getVisits = () => {
  const query = datastore
    .createQuery('visit')
    .order('timestamp', {descending: true})
    .limit(10);

  return datastore.runQuery(query);
};

index.yaml

indexes:
# AUTOGENERATED

# This index.yaml is automatically updated whenever the Cloud Datastore
# emulator detects that a new type of query is run. If you want to manage the
# index.yaml file manually, remove the "# AUTOGENERATED" marker line above.
# If you want to manage some indexes manually, move them above the marker line.

Я так понимаю что удаленная база данных не имеет индекса, который вызывает ошибку сверху. Я запускал запрос из проекта несколько раз, но индекс не обновлялся.

Я пытался загрузить index.yaml, но из-за отсутствия комментариев, ошибка продолжается.

Как создать индекс, чтобы удаленное хранилище данных работало без ошибок?

...