【问题标题】:Firebase Firestore - get additional data for each document on collectionFirebase Firestore - 为收集的每个文档获取额外数据
【发布时间】:2018-10-22 16:38:01
【问题描述】:

我有这个消息对象列表,其中包含一条消息、一个 user_id 和一个日期。我实际上想与每条消息一起检索用户信息。

return new Promise<any>((resolve, reject) => {
  this.afs.collection('/messages").snapshotChanges()
    .subscribe(snapshots => {
      resolve(snapshots)
    })
})

我不认为迭代消息以获取用户是我想要做的 - 应该有更好的方法。我也不确定我在某些地方读到的关于为每个可能需要它的位置存储整个用户数据的建议......我不喜欢它。

有没有更好的办法?

【问题讨论】:

  • 如果您有兴趣,您可以在这里找到database schema 聊天应用程序,您可以在其中找到所有需要的用户详细信息。

标签: firebase google-cloud-firestore angularfire2


【解决方案1】:

Firebase here 的 Frank 在这里就实时数据库回答了这个问题。这很可能也适用于您的用例。还有一个很棒的小支持文档列出了使用 Firestore here 的不同方法的优点。

根据您的具体用例,将用户数据存储在您的消息对象中可能成立,也可能不成立。您可能听说过数据复制和反规范化,这是 NoSQL 数据库中的常见做法。

在不太了解您的用例的情况下,我会将 user_id 存储在消息对象中,并在需要时获取它们。

【讨论】:

  • 正如我所说,我就是这样做的;我将 user_id 存储在消息对象上。感谢您提供的链接,很高兴刷新一下有关如何构造数据的信息!不过,问题是在获取具有 user_id 的消息时,是否可以直接从 USERS 节点获取用户数据,而不是等待响应,然后通过循环获取每个用户的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
  • 2021-08-06
  • 2019-06-22
相关资源
最近更新 更多