【发布时间】:2022-10-08 20:37:23
【问题描述】:
在标题中,我解释了我想做什么。我有一个名为的布尔值 'turnInvitingPlayer' 存储在 Firestore 的文档字段中的某处。我从 GameTable 的实例变量中确切知道文档的位置。
这是我尝试过的:
class GameTable extends StatefulWidget {
GameTable({Key? key,
required this.player,
required this.invitationID,
required this.invitationIdPlayerInvited,
required this.invitationIdPlayerInviting})
: super(key: key);
final Player? player;
final String invitationIdPlayerInvited;
final String invitationIdPlayerInviting;
/// the invitation ID is the doc name of the gambling Table
final String invitationID;
@override
State<GameTable> createState() => _GameTableState();
}
class _GameTableState extends State<GameTable> {
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseFirestore.instance
.collection('GameTables')
.doc(widget.invitationID)
.snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
var dataGameTable = snapshot.data! as Map;
var turnInvitingPlayer =
dataGameTable['turnInvitingPlayer'] as bool;
if (turnInvitingPlayer == true) {
return Container(color: Colors.blue);
} else {
return Container(color: Colors.red);
}
} else if (!snapshot.hasData) {
return Container(
child: Text('There is no data'),
);
}
return CircularProgressIndicator();
});
}
}
运行应用程序时出现以下错误
Expected a value of type 'Map<dynamic, dynamic>', but got one of type '_JsonDocumentSnapshot'
有人可以告诉我如何简单地访问流的布尔值并在 if 子句中使用它吗?
感谢所有愿意提供帮助的人。
【问题讨论】:
-
而不是
snapshot.data!,请尝试snapshot.data!.data()。
标签: flutter firebase dart firebase-realtime-database