Обновить вложенный объект в Firebase - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь обновить вложенный объект в Google Firebase Cloud Firestore.Моя структура базы данных:
коллекция 'users'
- документы (userId)
---- collection 'matrix
------ документ' service '(получил больше документов: то же самоевведите разные имена)
-------- success: Story []
-------- ошибка: Story []
-------- name: string

Модель истории:
title: string text: string storyType: string ('success' | 'failure) case: string (for instance 'service') ...

Сейчас я использую Angular и хочу обновить одну историю, используя.Как мне это сделать?
Я знаю, как получить ссылку на «служебный» документ

update(story: Story, userId:string){ }

db.collection('users').doc(userId).collection('matrix).doc(story.case).update()
Нужно ли обновить весь документ или могуЯ достигаю конкретной истории по объекту истории (я знаю его тип, например «успех», а название - uniq), поэтому я могу искать, у которого есть этот заголовок, и обновлять только эту историю?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете использовать операторы arrayUnion и arrayRemove для добавления и удаления элементов из массива.

Например, чтобы добавить Story

  db.collection('users').doc(userId).collection('matrix).doc(story.case).update(
    {"success": FieldValue.arrayUnion(someStory)}
    )

, эти операторы обрабатывают массив как наборы.Вы не можете получить доступ к отдельным элементам по индексу.

официальная документация здесь: https://firebase.google.com/docs/firestore/manage-data/add-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...