Flutter&Firebase:“查询”类型不是“ CollectionReference”类型的子类型

时间:2020-04-02 08:17:27

标签: firebase flutter dart google-cloud-firestore

在Firestore中,我有一个名为“ habits”的集合,每个文档都有一个带有用户ID的数组。我现在想获得一个包含所有习惯的集合,这些习惯在数组中包含特定的userID。

这是我的代码:

final CollectionReference habitDataCollection = Firestore.instance.collection('habits').where("habitFollowers", arrayContains: 'userID');

现在,我出现此错误:“查询”类型不是“集合引用”类型的子类型

你知道我在做什么错吗?

非常感谢您的帮助!

尼古拉斯

PS:

然后代码使用Stream获取快照

  Stream<List<HabitData>> get habitData {
    return habitDataCollection.snapshots()
      .map(_habitDataListFromSnapshot);
  }

并将其形成飞镖对象

  List<HabitData> _habitDataListFromSnapshot(QuerySnapshot snapshot) {
    return snapshot.documents.map((doc){
     return HabitData(
       hid: doc.documentID ?? '',
       name: doc.data['name'] ?? '',
       description: doc.data['description'] ?? '',
       );
    }).toList();
  }

1 个答案:

答案 0 :(得分:5)

更改此:

<form>
  <button type="submit">Submit</button>
</form>

对此:

final CollectionReference habitDataCollection = Firestore.instance.collection('habits').where("habitFollowers", arrayContains: 'userID');