【发布时间】:2018-11-22 04:44:06
【问题描述】:
我正在使用 Flutter 和 Firebase 构建一个类似社交网络的程序,目前需要找到返回用户未关注的用户列表。
为了实现这一点,我正在尝试生成用户正在关注的用户 ID 列表,然后循环遍历每个用户 ID(可能会设置限制)并确定该 ID 是否在用户 ID 列表中用户没有关注。然后我会为此返回一个小部件列表。
目前,我正在尝试调用当前关注者的 Stream 以返回用户当前关注的每个人的列表,但 Flutter 不允许我从中返回列表?
class AddFollowers extends StatelessWidget {
final String userId = 'userID imported here';
Stream<List<String>> getFollowers(userId) async {
final QuerySnapshot result = await Firestore.instance
.collection('relationships')
.document(userId)
.collection('followers')
.where("follower", isEqualTo: true)
.getDocuments();
final List<DocumentSnapshot> documents = result.documents;
return documents;
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
elevation: 0.0,
leading: IconButton(
icon: Icon(Icons.close),
onPressed: () => Navigator.of(context).pop(),
),
title: new Text("Find Your Following"),
),
body: new Container(
child: new StreamBuilder(
stream: getFollowers(userId),
builder:
null //after returning the followers, I will build widgets of non-followers
),
),
// new FindFollowerWidget(),
);
}
}
非常感谢任何关于如何返回这个或更好的结构的建议。谢谢!
【问题讨论】:
-
.getDocuments();返回 Future
而不是 Stream。你应该简单地做 - Firestore.instance .collection('relationships') .document(userId) .collection('followers') .where("follower", isEqualTo: true) .snapshots();返回结果; -
谢谢!那行得通,是我的问题!如果您留下作为答案,很乐意接受!
标签: flutter google-cloud-firestore