Считывает ли установка полей строка за строкой из документа Firestore анти-шаблон? - PullRequest
0 голосов
/ 06 августа 2020

У меня есть документ в Firestore, из которого я прочитал его поля во фрагменте. Поскольку у него много полей, я устанавливаю переменные в Activity, в котором размещен этот фрагмент, чтобы я мог передавать данные между другими фрагментами. Чтобы достичь этого, я понимаю, что мне приходится писать похожие строки кода снова и снова, что заставило меня задуматься, есть ли лучший способ. введите описание изображения здесь

Два возможных решения, которые приходят мне в голову:

  • Структурируйте все эти поля в формате JSON -> что-то, что не подходит в системе документов Firestore imo
  • Поместите все эти поля в сериализуемый класс данных, который я сохраняю в действии, затем передайте его по связкам фрагментов -> Казалось бы сложным, и мне все равно придется писать it.get (foo) как панель для каждое из полей конструктора этого класса.

Учитывая все это, каков наилучший подход? Заранее спасибо.

1 Ответ

1 голос
/ 06 августа 2020

У вас есть несколько вариантов, как подойти к этому. Нет ничего лучше другого. В конечном итоге вы выберете тот, который лучше всего соответствует вашим потребностям и предпочтениям.

  1. Вы можете делать то, что делаете сейчас.
  2. Вы можете go на шаг дальше проверяйте типы значений вместо того, чтобы просто слепо преобразовывать их (что могло бы вызвать ошибку sh во время выполнения, если бы они не совпадали).
  3. Вы можете предоставить объект Class для get (String , Class ) , который может автоматически сопоставлять поля со свойствами в новом объекте типа T, если типы также совпадают.
  4. Вы можете вызывать различные типы c версии get, такие как getString ()

В конечном итоге вам нужно будет решить, будете ли вы доверять тому, что вы получаете в моментальном снимке, и допускать ошибки, или ничему не доверяйте и все проверяйте. Выбор за вами.

...