Не удается добавить документ из Firestore API. Ошибка 400 в имени ресурса… не хватает «проектов» с индексом 0

#firebase #google-api #google-cloud-firestore

#firebase #google-api #google-облако-firestore

Вопрос:

Я пытаюсь добавить один документ из Firestore API Explorer.

Это данные, которые я пытаюсь вставить:

 POST https://firestore.googleapis.com/v1/projects/myProjetID/databases/(default)/documents/myCollection/2019/04?documentId=10amp;key={YOUR_API_KEY}

{
 "fields": {
  "field0": {
   "referenceValue": "ref0"
  }
 }
}
  

У меня эта ошибка:

 cache-control:  private
content-encoding:  gzip
content-length:  143
content-type:  application/json; charset=UTF-8
date:  Mon, 08 Apr 2019 09:24:09 GMT
server:  ESF
vary:  Origin, X-Origin, Referer

{
 "error": {
  "code": 400,
  "message": "Resource name "ref0" lacks "projects" at index 0.",
  "status": "INVALID_ARGUMENT"
 }
}
  

Я не знаю, что не так.

Ответ №1:

Это потому, что с помощью "referenceValue" вы пытаетесь записать значение поля типа Reference, см. https://firebase.google.com/docs/firestore/manage-data/data-types

Вам необходимо указать полный путь ссылки (т. Е. Полный путь к документу) следующим образом:

 {
 "fields": {
  "name": {
   "referenceValue": "projects/{myProjetID}/databases/(default)/documents/{collectionName}/{documentId}"
  }
 }
}
  

Он будет сохранен в базе данных как /{collectionName}/{documentId}

Ответ №2:

Для меня мне пришлось выполнить инструкцию экспорта FIRESTORE_EMULATOR_HOST переменной, напечатанной при запуске эмулятора firestore.

Например,

 export FIRESTORE_EMULATOR_HOST=[::1]:8647