0

我是新来的。如何从 Firestore 中检索数据并与我收藏中的每个孩子形成新的个人资料?第二个问题是如何在另一个 dart 文件中使用此列表?谢谢谢谢。

final List<Profile> demoProfiles = [
Profile (
photos: [
     "https://",
 ],
name: "abc",

),
Profile (
photos: [
  "https://",

],
name: "abc",

)
 ];

个人资料.dart 在此处输入图像描述

4

1 回答 1

1

假设您有这样的 Firestore 结构:

Profile
    photos: []
    name: ""
    age: ""
    distance: ""
    education: ""

您可以使用以下代码片段获取数据并将其构建到您的对象中:

fetchData() async{
    final db = await Firestore.instance;
    List<Profile> demoProfiles = []
    db.collection("Profile").get().then(function(snapshot){
        snapshot.forEach((document) {
            demoProfiles.add(Profile(
                photos: document.data.photos,
                name: document.data.name,
                age: document.data.age,
                distance: document.data.distance,
                education: document.data.education
            ))
        })
    })
}

编辑:

1)从您的配置文件类中删除配置文件的模拟列表,它不应该在那里

2) 将您的 mainController 编辑为以下内容:

class _MainControllerState extends State<MainController> {

    List<Profile> demoProfiles = [];

    demoProfiles = fetchData();

    Final MatchEngine match Engine = MatchEngine (
        matches:demoProfiles.map((Profile profile) => Match(profile: profile)).toList();
    );

    fetchData() async{
        final db = await Firestore.instance;
        List<Profile> list = [];
        db.collection("Profile").get().then(function(snapshot){
            snapshot.forEach((document) {
                list.add(Profile(
                    photos: document.data.photos,
                    name: document.data.name,
                    age: document.data.age,
                    distance: document.data.distance,
                    education: document.data.education
                ))
            })
        });
        return list;
    }

}
于 2020-05-21T13:20:06.760 回答