【发布时间】:2021-09-25 22:51:39
【问题描述】:
我是 React native 和 firestore 的初学者,并使用它们来构建一种社交媒体应用程序,但我遇到了一个奇怪的问题(我认为我以错误的方式构建了 db)。我想要一个提要,包含所有帖子,没有基于关注的内容,没有任何内容。我第一次在数据库中构造我的帖子是这样的:users(collection)->user(doc)->thisUserPosts(collection inside doc) - 但我找不到从所有用户获取所有 thisUserPosts 的方法(doc ) 并正确显示它们。
所以我像这样重新构建了数据库: 2 主要收藏、帖子和用户。完全不同。在用户集合中,只有用户及其数据(姓名、年龄等)的文档。另一方面,他们的帖子(名称、媒体、desc 和 userId - 其中 userId == 创建它的人。帖子集合文档中的 userId 字段应该存在于用户集合中)。
第二种方法效果很好。在提要中,我只获取帖子。 但是当我尝试打开帖子时出现问题(需要有这个功能)。我需要能够在 react-navigation 标题上显示用户名,但我只有帖子的详细信息,只有 userId,这没什么用。
所以我想出了一个解决方案:在帖子集合文档中添加一个 userName 字段,在 userId 旁边并简单地显示它。现在有一个问题:我需要想办法(我认为在 firestore 中)收听来自用户集合文档的更新,以防用户更新他的姓名/用户名(我不想展示旧名称)。而且我不知道这是否可能在 Firestore 内或如何。还是找一个不同的数据库结构更好?
TLDR:需要 Firestore 中的函数来监听来自其他集合的更新或重组数据库。
【问题讨论】:
-
如果你没有使用Cloud functions,那么你应该删除
google-cloud-functions标签:)
标签: reactjs firebase react-native google-cloud-firestore