Angularfire Обновление вложенных данных - PullRequest
0 голосов
/ 12 октября 2018

Я использую базу данных пожарного магазина angularfire и firebase для сохранения данных изображения в базе данных.Сохранение работает на 100%.

Мои данные вложены так:

Коллекция изображений

  • galleryId
    • imageId
      • имя
      • путь
    • imageId
      • имя
      • путь
  • galleryId
    • imageId
      • name
      • path

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

Invalid document reference. Document references must have an even number of segments, but images/yuEXbpYWqE4AUfmRCxIu/JvLzEANRFlupuUxYXNii has 3

Это код пользователя I:

this.afs.doc('images'+'/'+galleryId+'/'+imageId+'/').update({"name": upload.name,"path": upload.url});

Я также попытался:

this.afs.doc('images').collection(galleryId).doc(imageId).update({"name": upload.name,"path": upload.url});

, и я также попытался:

 this.afs.collection('images'+'/'+galleryId).doc(imageId).update({"name": upload.name,"path": upload.url});

, и затем я получаю похожую ошибку, просто ссылаясь на коллекцию на этот раз:

 Invalid collection reference. Collection references must have an odd number of segments, but images/AHcWODRgsespIExQnJae has 2

Когда я пытаюсь обновить другие коллекции в моей базе данных, все работает нормально, однако они имеют только 2 уровня вложенности.Кажется, что когда вы вложили 3 уровня, возникают проблемы.

Пожалуйста, помогите

1 Ответ

0 голосов
/ 12 октября 2018

Вы не можете иметь документ, вложенный непосредственно в другой документ.Вы должны соответствующим образом структурировать свои гнезда: коллекция - документ - коллекция - документ - и т. Д. Пути в хранилище файлов всегда начинаются с коллекции.

this.afs.doc('images/'+galleryId + '/images/' + imageId).update({"name": upload.name,"path": upload.url});

Я бы посоветовал прочитать документацию пожарного депо, так как это фундаментальный аспект пожарного магазина: https://firebase.google.com/docs/firestore/

...