Обновите вложенный массив в AngularFire2 - PullRequest
0 голосов
/ 18 января 2019

У меня есть следующая модель для документа Firestore:

{
  name: "test",
  isActive: true,
  items: [
   {
     id: "123",
     itemName: "testItem",
     qty: 1
   },
   {
     id: "555",
     itemName: "anotherItem",
     qty: 5
   }]
}

Теперь, когда Firestore позволяет работать с вложенными массивами (через arrayRemove / arrayUnion), мне интересно, возможно ли это и через AngularFire2.

Или пока единственный способ - импортировать Firebase и использовать его прямо сейчас?
Как:

this.firestore.collection(<collectionName>).doc(<docID>).update({
 answers: firestore.FieldValue.arrayUnion(<AnswersObject>)
});

Более того, является ли такая модель с вложенным массивом допустимой в FIrestore или она должна быть структурирована по-другому?

1 Ответ

0 голосов
/ 19 января 2019

К сожалению, AngularFire2 пока НЕ ​​поддерживает это. Вы можете убедиться в этом, проверив исходный код .

Или, если вы ленивы, как я, и вам не хочется копаться в попытке найти его на GitHub ... то, что я сделал для двойной проверки, - это загрузил весь репозиторий в виде ZIP-файла, распаковал и открыл папка в VS Code. Поиск по всей папке по FieldValue или arrayUnion ничего не возвращает - эти слова не существуют во всем источнике.

Так что на данный момент вы правы в том, что вам нужно придерживаться стандартного пакета Firebase / Firestore. И вложенные массивы определенно являются «законными» вещами, но, как и все остальное, когда их использовать, это зависит от вашей ситуации - и я не чувствую себя достаточно квалифицированным или опытным, чтобы оценить вашу ситуацию и дать сильную рекомендацию.

...