如何将索引设置为data.length?

时间:2020-05-08 07:53:42

标签: firebase flutter dart google-cloud-firestore

如何设置(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']);

3 个答案:

答案 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']);

以便可以在所有文档中移动