Получить весь документ как массив записей

Я просто столкнулся с проблемой нарезки и тут же приземлился. Итак, позвольте мне добавить мои два цента к этому.

Приведем пример из «производственного кода» (или что-то вроде близкого):


Допустим, у нас есть то, что рассылает действия. Например, пользовательский интерфейс центра управления. Этот пользовательский интерфейс должен получить список вещей, которые в настоящее время могут быть отправлены. Поэтому мы определяем класс, содержащий информацию о доставке. Назовем это Action. Таким образом, Action имеет некоторые переменные-члены. Для простоты мы имеем только 2, являющиеся std::string name и a std::function<void()> f. Затем он имеет void activate(), который просто выполняет член f.

Таким образом, пользовательский интерфейс получает std::vector<Action>. Представьте себе некоторые функции, такие как:

void push_back(Action toAdd);

Теперь мы установили, как это выглядит с точки зрения пользовательского интерфейса. Пока нет проблем. Но какой-то другой парень, который работает над этим проектом, внезапно решает, что существуют специальные действия, требующие дополнительной информации в объекте Action. По какой причине. Это также можно решить с помощью лямбда-захватов. Этот пример не принимается 1-1 из кода.

Итак, парень происходит от Action, чтобы добавить свой собственный вкус. Он передает экземпляр своего урожая в класс push_back, но затем программа переходит в haywire.

Итак, что случилось? Как вы могли предположить : объект был отрезан.

Дополнительная информация из экземпляра потеряна, а f теперь подвержен неопределенному поведению.

]

Надеюсь, что в этом примере рассказывается о тех людях, которые не могут себе представить, когда говорят о A s и B в какой-то мере.

0
задан ogot 24 March 2019 в 16:11
поделиться

1 ответ

Поскольку вы запросили массив записей, вы можете использовать Object.entries :

fb.publicationsCollection
  .doc("pubdata")
  .get()
  .then(res => {
    let pubData = Object.entries(res.data());
    // pubData will look like:
    // [["1892872", {…}], ["1892875", {…}]]
   })
0
ответ дан Scott Rudiger 24 March 2019 в 16:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: