【发布时间】:2020-05-15 18:42:13
【问题描述】:
在遵循最佳实践的同时,我在如何使用 Firestore 进行一些关系查询方面遇到了一点心理障碍。我正在创建一个提要功能,您可以在其中查看朋友的帖子提要。基本上我的数据结构如下:
Friends (collection)
-friend_doc
...data
friends_uid: [uid1, uid2]
Posts (collection)
-post_doc
...data
posted_by: uid2
基本上,我正在查询 friends_uid 包含我的 uid(在本例中为 uid1)的所有朋友。然后,一旦我将所有朋友的 uid 映射到一个数组,我想进行一次 firestore 查询以获取 posted_by 字段等于该朋友 uid 数组中的任何 uid 的帖子。我还没能做出类似的东西。
我知道循环遍历朋友 uid 的字符串数组并为每个人进行查询似乎最方便:
listOfUids.forEach(async (item) => {
const postQuerySnapshot = await firestore()
.collection('posts')
.where('uid', '==', item)
.get();
results.push(postQuerySnapshot.docs);
});
但这对于分页和限制数据来说是非常有问题的,因为我可能会收到大量的帖子。我可能对这段代码太深入了,错过了一个明显的解决方案,或者我的数据结构有些缺陷。任何见解将不胜感激。
TLDR - 如何进行 Firestore 查询以获取所有具有字符串数组中的值的文档?
【问题讨论】:
-
我意识到这个问题有点宽泛,因为它考虑到在 firestore 中构建数据,我只是无法找到在 firestore 中创建提要功能的好例子。
标签: javascript firebase react-native google-cloud-firestore