我需要你的帮助。这是我正在尝试实现的场景。
我可以使用 Stream 从文档中获取数据,但无法填充 DropdownButton。
final _db = FirebaseFirestore.instance;
body: SafeArea(
child: SingleChildScrollView(
child: Column(
Container(
child: StreamBuilder(
stream: _db.collection('agency').snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
} else {
var length = snapshot.data.doc.length;
print('length: ' + length);
return new DropdownButton<String>(
hint: new Text("Select Agency"),
value: _currentAgency,
items: snapshot.data.doc.map((Map map) {
return new DropdownMenuItem<String>(
value: map["name"].toString(),
child: new Text(
map["name"],
),
);
}).toList(),
);
}
;
}),
),
我在日志中收到以下错误
======== 小部件库捕获的异常 ================================== ======================
在构建 StreamBuilder(dirty, state: _StreamBuilderBaseState
E/flutter (13608): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:NoSuchMethodError:方法“[]”被调用为空值。 E/flutter (13608):接收器:空 E/flutter (13608):尝试调用: E/flutter (13608): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5) E/flutter (13608): #1 _AgencyScreenState.getCurrentAgencyProfile (package:tonnah/screens/agency_screen.dart:96:62) E/扑(13608): E/扑(13608):
我一直在阅读很多帖子并遵循他们所说的,但我无法让它发挥作用。