Cloud Firestore:如何引用另一个文件?

时间:2018-01-22 02:03:19

标签: angular firebase angularfire2 google-cloud-firestore

我正在使用Angularfire2。假设我有一个userscomments个集合。添加评论时,引用创建评论的用户的正确方法是什么?起初我以为我可以简单地用这样的结构创建一个评论:

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

但问题是如果用户更新了他的个人资料,那么此处的数据将是不正确的。是否可以在创建注释时简单地提供用户的id,并在查询注释时获取整个用户的数据?

2 个答案:

答案 0 :(得分:1)

这完全取决于你。如果您想像现在一样复制数据,您肯定必须找到一种方法来确保所有副本都是最新的。如果您只想存储一个uid(文档ID),那么它将花费您第二次文档获取来获取消息的用户详细信息。你实际上是在成本,速度和复杂性之间进行权衡,而且实际上没有“正确的方法”。

答案 1 :(得分:1)

使用firestore,您可以将该字段另存为DocumentReference,它是对另一个集合中的文档的引用。这使得该字段在“评论”中起到了它自己可观察的作用。观察到的。本文演示了在设置或更新文档时如何设置引用路径:https://groups.google.com/forum/m/#!topic/firebase-talk/UTgW7WwKFTU

Firestore提供了各种本地支持的数据类型:https://firebase.google.com/docs/firestore/manage-data/data-types

我希望这可以有所帮助!