Firebase Flutter Dart :Class '_JsonQuerySnapshot' has no instance method '[]'. Receiver: Instance of '_JsonQuerySnapshot'
2,368
The function .snapshots() should return a QuerySnapshot. try accessing snapshot.data.docs and you should get a List which you can then access each QueryDocumentSnapshot data using doc.data().
it'll look something like that:
StreamBuilder(
stream: user
.where('Phone Number',
isEqualTo: widget.user['ID'])
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Text("Loading");
}
// snapshot.data is QuerySnapshot than I access .docs to get List<QueryDocumentSnapshot>
var docs = snapshot.data.docs;
// Accessing single QueryDocumentSnapshot and then using .data() getting its map.
final user = docs[0].data()!;
return Padding(
padding: const EdgeInsets.only(left: 15),
child: Text(
"${user["Gender"]}.",
),
);
}),
If it doesn't work let me know and ill update the answer! :)
Author by
salma.m
Updated on December 30, 2022Comments
-
salma.m over 1 year
I am trying the following:
StreamBuilder( stream: user .where('Phone Number', isEqualTo: widget.user['ID']) .snapshots(), builder: (context, snapshot) { if (!snapshot.hasData) { return Text("Loading"); } var profile= snapshot.data; return Padding( padding: const EdgeInsets.only(left: 15), child: Text( "${profile["Gender"]}.", ), ); }),
Class _JsonQuerySnapshot has no instance method '[]'. Receiver: Instance of '_JsonQuerySnapshot' Tried calling: [] ("Gender")
How can I fix this Error?