如何设置(snapshot.data.documents.length = i)以获取所有数据,而不仅仅是第一个?
.snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return new Text('Connecting...');
} else {
for(int i= 0; i < snapshot.data.documents.length;) {
DocumentSnapshot test =
snapshot.data.documents[i];
print(test['GroupID']);
答案 0 :(得分:1)
您只是忘了在for循环中增加i。
for(int i= 0; i < snapshot.data.documents.length;i++) {
答案 1 :(得分:1)
您不必在var s = document.getElementById("hey");
s.style.visibility = "visible";
s.innerHTML = "Checks";
内进行迭代即可访问数据:
StreamBuilder
示例:
print(snapshot.data.documents[index].data["GroupID"]);
改为使用else {
return ListView.builder(
shrinkWrap: true,
itemCount: snapshot.data.documents.length,
itemBuilder: (BuildContext context, int index) {
return ListTile(
contentPadding: EdgeInsets.all(8.0),
title:
Text(snapshot.data.documents[index].data["GroupID"]),
leading: Text(snapshot.data.documents[index].data["groupName"])
);
});
}
,然后访问所有数据
答案 2 :(得分:1)
在上面的代码中,您可能因为for循环而成为第一个
您的代码显示了这一点
for(int i= 0; i < snapshot.data.documents.length;) { DocumentSnapshot test = snapshot.data.documents[i]; print(test['GroupID']);
但必须是
for(int i= 0; i < snapshot.data.documents.length;i++) { DocumentSnapshot test = snapshot.data.documents[i]; print(test['GroupID']);
以便可以在所有文档中移动