Firebase-Mapping-Fehler für das Flatterprojekt [Duplikat]
Widget searchList() {
return ListView.builder(
itemCount: searchSnapshot.docs.length,
itemBuilder: (context, index) {
return SearchTile(
userName: searchSnapshot.docs[index].data["name"],
userEmail: searchSnapshot.docs[index].data["email"],
);
});
}
Der Operator '[]' ist nicht für den Typ 'Map <String, dynamic> Function ()' definiert. Versuchen Sie, den Operator '[]' zu definieren.
Ich erhalte diesen Fehler. Bitte helfen Sie mir dabei
Antworten
Ich habe den gleichen Fehler erhalten, nachdem ich jetzt Firebase-bezogene Pakete meines Projekts aktualisiert habe.
Einfache Lösung ist zu ändern
searchSnapshot.docs[index].data["name"]
zu
searchSnapshot.docs[index].data()["name"]
um das () hinter den Daten hinzuzufügen.
Es scheint, als hätte Google die Syntax geändert, um besser mit dem Admin SDK in Firebase-Cloud-Funktionen oder anderen Backends zusammen zu passen.
Quelle: https://github.com/FirebaseExtended/flutterfire/blob/master/packages/cloud_firestore/cloud_firestore/lib/src/document_snapshot.dart#L38 /. https://stackoverflow.com/a/63529675/3917673
Mach das,
Widget searchList() {
return ListView.builder(
itemCount: searchSnapshot.docs.length,
itemBuilder: (context, index) {
return SearchTile(
userName: searchSnapshot.docs[index].data()["name"],
userEmail: searchSnapshot.docs[index].data()["email"],
);
});
}
Das Aufrufen von [] ist veraltet. Jetzt müssen Sie die .data()Methode verwenden.