В настоящее время я пытаюсь разработать приложение, в котором товары категорически отображаются на отдельном экране или в классе с помощью ListView.builder ().
Мне нужно выбрать / выбрать категорию или подкатегорию, чтобы Я могу видеть продукты в виде списка. Я не вижу ничего на экране, если я не выбираю одну или несколько категорий ИЛИ подкатегорий. Я также могу отдать предпочтение различным категориям, и в представлении списка я вижу продукты, которые соответствуют любимому продукту. Если бы я выбрал подкатегорию, я должен видеть в списке только те продукты, которые видны в этой избранной подкатегории, а не вышестоящие категории. Если я предпочитаю более высокую категорию, все продукты подкатегорий должны отображаться в виде списка.
Но я беспокоюсь о производительности. Моя база данных будет работать на Firebase. Подходит ли для этого пожарный магазин? Я также читал, что реляционные базы данных больше подходят для таких вещей. Однако я никогда не работал с ним и хочу, чтобы избранное не только сохранялось на смартфоне. Я хотел бы, чтобы избранное вызывалось, когда пользователь входит в приложение с другого телефона.
Мой вопрос является скорее структурным вопросом. Лучше ли для производительности, если есть класс Category, в котором у всех высших и низших категорий есть список товаров, которые затем объединяются в виде списка (если, конечно, выбраны разные категории)?
Я имею в виду, если я перечисляю все продукты в одном списке и затем фильтрую их в коде (на уровне приложения), это совершенно не работает, верно?
Нужно ли иметь категорию класса? а отдельный класс подкатегории? Как бы вы go об этом? В моем мозгу полный хаос
класс Продукт:
import 'package:flutter/material.dart';
class Product {
final String id;
final String title;
final List<String> imagesPath;
final String description;
final Color categoryColor;
Product({
@required this.id,
@required this.title,
@required this.imagesPath,
@required this.description,
@required this.categoryColor,
});
}
класс Категория:
import 'package:flutter/material.dart';
import '../models/Product.dart';
class Category {
final String title;
final Color color;
bool isFavourite;
final List<Product> products;
Category({@required this.title, @required this.color, this.isFavourite = false, this.products});
}
List<Category> categories = [
Category(
title: 'Automobile',
color: Colors.lightBlue,
isFavourite: false,
),
];
Я больше не знаю, что было бы более правильным с точки зрения того, как Я должен go вкл.
Спасибо:)