I am trying to find the solution for this error, help! how can i solve this ? i use this to make a chat app using firebase ════════ Exception caught by widgets library ═══════════════════════════════════ Bad state: field does not exist within the DocumentSnapshotPlatform The relevant error-causing widget was StreamBuilder<QuerySnapshot<Object?>>
import 'package:chat_app/Widgets/chat_bubble.dart';
import 'package:chat_app/constant.dart';
import 'package:flutter/src/foundation/key.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import '../models/message.dart';
class ChatPage extends StatelessWidget {
static String id = 'ChatPage';
CollectionReference messages =
FirebaseFirestore.instance.collection(KMessagesCollection);
TextEditingController controller = TextEditingController();
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: messages.snapshots(),
builder: ((context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData) {
List<Message> messagesList = [];
for (int i = 0; i < snapshot.data!.docs.length; i++) {
messagesList.add(Message.fromJason(snapshot.data!.docs[i]));
}
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: false,
backgroundColor: kPrimaryColor,
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: const EdgeInsets.all(5.0),
child: CircleAvatar(
backgroundColor: Colors.white,
child: Image.asset(
Klogo,
height: 50,
),
),
),
Text('Chat'),
],
),
centerTitle: true,
),
body: Container(
child: Column(
children: [
Expanded(
child: ListView.builder(
itemCount: messagesList.length,
itemBuilder: (context, index) {
return ChatBubble(
message: messagesList[index],
);
}),
),
Padding(
padding: const EdgeInsets.all(16),
child: TextField(
controller: controller,
onSubmitted: (data) {
messages.add({
'message': data,
});
controller.clear();
},
decoration: InputDecoration(
hintText: 'Send Message',
suffixIcon: Icon(
Icons.send,
color: kPrimaryColor,
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(16),
borderSide: BorderSide(color: kPrimaryColor),
),
),
),
),
],
),
));
} else {
return Text('Loading...');
}
}),
);
}
}