【发布时间】:2021-03-06 22:33:36
【问题描述】:
我正在使用 where 和 arrayContains 在 Flutter 中查询一个 firestore 集合,但由于某种原因它没有按预期工作。
StreamBuilder(
stream: (_searchTerm.length >= 3)
? FirebaseFirestore.instance.collection("users").snapshots()
: FirebaseFirestore.instance
.collection('users')
.where('email', arrayContains: _searchTerm)
.snapshots(),
builder: (ctx, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(
child: CircularProgressIndicator(),
);
}
final results = snapshot.data.docs;
print(results.length);
return ListView.builder(
shrinkWrap: true,
itemCount: results.length,
itemBuilder: (ctx, index) => Text(
results[index].data()['display-name'],
),
);
})
_searchTerm 变量在我在文本字段中输入一些值时填充,当它达到三个字符的长度时,即触发上述查询。 例如,当我输入 test 时,查询应该只返回其中包含 test 的值,但我得到的是带有和不带有值 test 的整个集合。 请指教!
【问题讨论】:
标签: firebase flutter google-cloud-firestore