我需要在多个级别上存储数据:Test 1 > q1, q2, q3... > question: hello, answer: opt 2, opt 1: a, opt 2: b, opt 3: c, opt 4: d
所以实际上我有多个测试,在每个测试中,你有多个问题,每个问题有多个选项。
我如何将其添加到firestore,并能够快速加载每个测试,因为它被延迟了很长时间,使用下面的代码:
for (var i = 1; i < totalquestions + 1; i++) {
await FirebaseFirestore.instance
.collection("users")
.doc(user!.uid)
.collection('Test $no')
.doc(i.toString())
.set(
Map<String, dynamic>.from(
Provider.of<Question>(context, listen: false)
.question[i]!,
),
);
await FirebaseFirestore.instance
.collection("users")
.doc(user.uid)
.collection('Test $no')
.doc(i.toString())
.update(
{
'yourAns':
Provider.of<Question>(context, listen: false)
.answers[i]!
.values
.first
},
);
}
1条答案
按热度按时间ssgvzors1#
把它作为一个社区wiki发布给每个人。
正如Frank所提到的,Firestore中的嵌套字段转换为Flutter中的嵌套
Map
对象。需要考虑的一件事是嵌套字段是否应该是subcollection
中的documents
。它将使您能够分别查询它们并加载数据子集,但最终您将阅读更多的文档。这里有一个全面的answer嵌套Map在Flutter。