The following code gives me the error:
Exception caught by widgets library The following LateError was thrown building Conversations(dirty, state: _ConversationsState#77d8c): LateInitializationError: Field 'chatRoomStream' has not been initialized.
import 'package:flutter/material.dart';
import 'package:meet_up/screens/authenticate/helperfunctions.dart';
import 'package:meet_up/screens/home/conversationdm.dart';
import 'package:meet_up/screens/home/searchusers.dart';
import 'package:meet_up/services/auth.dart';
import 'package:meet_up/services/database.dart';
import 'package:meet_up/shared/constants.dart';
class Conversations extends StatefulWidget {
@override
_ConversationsState createState() => _ConversationsState();
}
class _ConversationsState extends State<Conversations> {
AuthService authService = AuthService();
DatabaseServices databaseServices = DatabaseServices();
late Stream chatRoomStream;
Widget chatRoomList() {
return StreamBuilder(
stream: chatRoomStream,
builder: (context, snapshot) {
return snapshot.hasData
? ListView.builder(
itemCount: (snapshot.data as QuerySnapshot).docs.length,
itemBuilder: (context, index) {
return ChatRoomTile(
(snapshot.data as QuerySnapshot)
.docs[index]["chatroomId"]
.toString()
.replaceAll("_", "")
.replaceAll(Constants.myName, ""),
((snapshot.data as QuerySnapshot).docs[index]
["chatroomId"]));
})
: Container();
});
}
@override
void initState() {
super.initState();
getUserInfo();
databaseServices.getChatRooms(Constants.myName).then((value) {
setState(() {
chatRoomStream = value;
});
});
}
getUserInfo() async {
Constants.myName = (await HelperFunctions.getUserNameSharedPreference())!;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.green,
elevation: 0,
title: Text(
'Conversations',
),
),
body: chatRoomList(),
floatingActionButton: FloatingActionButton(
backgroundColor: Color(0xFF25D55F),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SearchScr(),
));
},
child: Icon(Icons.search),
),
);
}
}
class ChatRoomTile extends StatelessWidget {
final String userName;
final String chatRoomId;
ChatRoomTile(this.userName, this.chatRoomId);
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => UserConversationDM(chatRoomId)));
},
child: Container(
color: Color(0xff2d2828),
padding: EdgeInsets.symmetric(horizontal: 20, vertical: 16),
child: Row(
children: [
Container(
height: 40,
width: 40,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Colors.green, borderRadius: BorderRadius.circular(40)),
child: Text(
"${userName.substring(0, 1).toUpperCase()}",
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.bold,
),
),
),
SizedBox(
width: 8,
),
Text(
userName,
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.bold,
),
)
],
),
),
);
}
}
I am really new to flutter, and a little bit of guidance will really be appreciated. Thank you :)