没有为类型“Object”定义运算符“[]”

P A*_*nga 5 snapshot firebase flutter google-cloud-firestore

我正在尝试从 Firestore 获取 brews 集合中的文档。

我的代码有什么问题吗?

帮助我熟悉 Flutter 和 Firebase 的人。

////brew list from snapshot
List<Brew> _brewListFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.docs.map((document) {
      return Brew(
        name: document.data()['name'] ?? '',
        strenght: document.data()['strength'] ?? 0,
        sugars: document.data()['sugars'] ?? '0',
      );
    }).toList();
  }
Run Code Online (Sandbox Code Playgroud)

附上有关错误的屏幕截图

Zac*_*Zac 0

您可能正在寻找 document.data[] 而不是 document.data()[]

document.data 是一个返回 Map<String,dynamic> 的 getter,因此您只需将其查询为 document.data['someKey'] 而不是 document.data()['someKey']

所以这段代码应该可以工作:

List<Brew> _brewListFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.docs.map((document) {
      return Brew(
        name: document.data['name'] ?? '',
        strength: document.data['strength'] ?? 0,
        sugars: document.data['sugars'] ?? '0',
      );
    }).toList();
  }
Run Code Online (Sandbox Code Playgroud)