如何修复用Firestore填充DropDown Button的错误

时间:2019-06-07 22:20:02

标签: flutter google-cloud-firestore

我想用Firestore填充一个下拉按钮,我可以获取数据,但不能将其放在下拉菜单中。

我已经确定了问题,这是“下拉按钮”的项目列表,但我不知道发生了什么。

当我将valor放在'items'上时,它可以工作(不显示错误),但不显示任何内容(显然)。

这是我的代码。

StreamBuilder<QuerySnapshot>(
          stream: Firestore.instance
              .collection('usuarios/$id/ubications')
              .snapshots(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) {
              const Text("Error");
            } else {
              List<DropdownMenuItem> ubicationItems = [];
              print(snapshot.data.documents.length);
              for (int i = 0; i < snapshot.data.documents.length; i++) {
                DocumentSnapshot snap = snapshot.data.documents[i];
                //_accountType.add(snap['ubication']);
                ubicationItems.add(DropdownMenuItem(
                  child: Text(
                    snap['ubication'],
                  ),
                  value: "${snap['ubication']}",
                ));
              }
              print(ubicationItems.length); //it has the data
              return Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  DropdownButton(
                    items: ubicationItems,
                    onChanged: (selectedType) {
                      print('$selectedType');
                      setState(() {
                        selectedType = selectedUbication;
                      });
                    },
                    value: selectedUbication,
                    isExpanded: true,
                    hint: new Text("ubication"),
                  ),
                ],
              );
            }
          }),

这是错误:
I / flutter(14877):引发了另一个异常:'package:flutter / src / material / dropdown.dart':失败的断言:609行pos 15:'item == null || items.isEmpty ||值== null || items.where(((DropdownMenuItem item)=> item.value == value).length == 1':不正确。

我使用了以下示例,例如指南:https://github.com/whatsupcoders/FlutterDropDown/blob/master/lib/main.dart

我希望有人能帮助我,谢谢。

0 个答案:

没有答案