【发布时间】:2019-03-02 16:44:15
【问题描述】:
我正在使用 Firebase Firestore 构建 Flutter 应用。我正在尝试实现喜欢功能的错误,但遇到了一些平台限制。
我有一个集合users。
每个用户都有likedUsers 集合,我在其中存储了uids 的喜欢用户。此外,每个用户都有“likedBy”集合,我在其中存储 uids 的其他用户喜欢当前用户。
Firestore 不允许运行集合组查询,因此我无法在其likedUsers 集合中获取当前用户的uid 的所有用户。
我能做的只是从当前用户的'likedBy'集合中获取用户uids的列表,并像这样一一获取用户:
final QuerySnapshot querySnapshot = await _db
.collection(FirebaseContract.USERS_COL)
.document(uid)
.collection(User.LIKED_BY_COL)
.getDocuments();
querySnapshot.documents.forEach(
(DocumentSnapshot snapshot) {
_db.collection(FirebaseContract.USERS_COL).document(snapshot.documentID).get().then(
(DocumentSnapshot document) {
print(document[User.NAME]);
},
);
},
);
对于这个问题,还有比这更优雅、更省时、更经济的解决方案吗?
【问题讨论】:
标签: firebase flutter google-cloud-firestore