Как хранить полиморфные документы в одной коллекции в Firestore? - PullRequest
0 голосов
/ 10 октября 2019

Каков наилучший способ хранения полиморфных объектов в Firestore?

Пример: Предполагается, что «базовый» объект, три других наследуются от него. Я думаю о хранении конкретных объектов в одной коллекции. Может ли пожарный магазин понять, например, запросы с индексами полей, которые могут существовать в одном документе, а не в другом?

Структура:

BaseObject
A extends BaseObject
B extends BaseObject
C extends BaseObject

Итак, я думаю о сохранении A,B и C в одной и той же коллекции и приведении в соответствии с атрибутом «тип» commom в суперклассе ...

Итак, во время запроса я думал просто знать тип и приведение. Но я действительно не знаю, поддерживает ли firestore создание одного или нескольких индексов для выполнения запроса, если какой-либо атрибут существует или отсутствует в одном или нескольких документах.

Возможно?

1 Ответ

1 голос
/ 10 октября 2019

Да, ваш подход звучит для меня возможно. Хранение нескольких типов в одной коллекции - это один из способов справиться со сценарием с его собственным набором преимуществ и недостатков.

Когда вы читаете данные обратно, вы не можете просто привести значение через,Вам нужно будет самостоятельно прочитать поле типа и запросить правильный подкласс в вызове toObject(), поскольку Firebase SDK ничего не знает о значении этого поля.

Я бы рекомендовал попробовать и доложить, если вы столкнетесь с более конкретными проблемами.

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