Angular 云Firestore:如何引用其他文档?

Angular 云Firestore:如何引用其他文档?,angular,firebase,angularfire2,google-cloud-firestore,Angular,Firebase,Angularfire2,Google Cloud Firestore,我用的是Angularfire2。假设我有一个users和comments集合。添加注释时,引用创建注释的用户的正确方式是什么?起初,我认为我可以简单地创建一个评论,其结构如下: { message: string, user: { uid: string, username: string, ... } } 但是问题是如果用户更新了他的个人资料,那么这里的数据就不正确了。是否可以在创建评论时提供用户id,并在查询评论时获

我用的是Angularfire2。假设我有一个
users
comments
集合。添加注释时,引用创建注释的用户的正确方式是什么?起初,我认为我可以简单地创建一个评论,其结构如下:

{
    message: string,
    user: {
        uid: string,
        username: string,
        ...
    }
}

但是问题是如果用户更新了他的个人资料,那么这里的数据就不正确了。是否可以在创建评论时提供用户id,并在查询评论时获取整个用户数据?

完全由您决定。如果你想复制现在的数据,你一定要想办法确保所有的副本都是最新的。如果您只想存储uid(文档id),则需要进行第二次文档获取以获取消息的用户详细信息。您实际上是在成本、速度和复杂性之间进行权衡,而实际上并没有一种“正确的方法”来做到这一点。

使用firestore,您可以将该字段保存为DocumentReference,它是对另一个集合中文档的引用。这使得字段在“注释”可观察范围内充当自己的可观察范围。本文演示如何在设置或更新文档时设置引用路径:

Firestore提供了各种本机支持的数据类型,如下所述:

我希望这能有所帮助