The method ‘[]’ can’t be unconditionally invoked because the receiver can be ‘null’.
Try making the call conditional (using ‘?.’) or adding a null check to the target (‘!’).
I’m getting this error while trying to stream data from firebase cloud
I don’t know what to do
StreamBuilder<QuerySnapshot>(
stream: _firestore.collection('messages').snapshots(),
builder: (context, snapshot) {
List<Text> messageWidgets = [];
if (snapshot.hasData) {
final messages = snapshot.data?.docs;
for (var message in messages!) {
final messageData = message.data();
final messageText = messageData['text'];
final messageSender = messageData['sender'];
final messageWidget =
Text('$messageSender said $messageText');
messageWidgets.add(messageWidget);
}
}
return Column(
children: messageWidgets,
);
},
),
the error in those two lines
final messageText = messageData['text'];
final messageSender = messageData['sender'];
trying to get and stream data from firbase cloud
>Solution :
You can use as prefix to object to Map. Then you can use keys to get the data.
final messageData = message.data() as Map?;
final messageText = messageData?['text']??"default msg";
final messageSender = messageData?['sender']??"default sender";