我目前正在尝试开发一个应用程序,其中使用ListView.builder()将产品分类显示在单独的屏幕或类中。
我必须选择/偏爱一个类别或子类别,以便可以在列表视图中查看产品。如果我未选择一个或多个类别或子类别,则在屏幕上看不到任何内容。我也可以选择不同的类别,在列表视图中,我可以看到与喜欢的产品匹配的产品。如果我偏爱子类别,那么我应该只在列表视图中看到在偏爱的子类别中看到的产品,而不是上级类别。 如果我希望使用更高的类别,则应该在列表视图中显示所有子类别的产品。
但是我担心表现。我的数据库将在Firebase上运行。消防员更适合这样做吗?我还阅读了关系数据库更适合此类情况。但是,我从未使用过它,我希望收藏夹不仅可以保存在智能手机上。我希望在用户用另一部手机登录该应用时调用收藏夹。
我的问题更多是一个结构性问题。如果存在一个Category类,该类别中所有较高和较低的类别每个都有一个带有产品的列表,然后将它们合并到列表视图中(当然,如果选择了不同的类别),这样做对性能是否更好?
我的意思是,如果我将所有产品都列在一个列表中,然后再在代码中过滤它们(在应用程序级别),那是完全不对的,对吧?
我必须有一个类别类别和一个单独的子类别类别吗?你会怎么做?我脑子里全乱了
类产品:
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,
),
];
我不再知道哪一种方法更正确。
谢谢:)
答案 0 :(得分:0)
我建议使用 Cloud Firestore,因为它提供了 Firebase 实时数据库不提供的query functionalities。
您可以查看我在 here 中发布的类似答案,我在其中演示了查询 Firestore 数据并根据所选项目过滤显示的数据。