如何在FireStore中为具有字段`List <user> friends`的类`User`建模?

时间:2017-10-30 13:35:57

标签: android firebase google-cloud-firestore

在Cloud Firestore中,我有一个名为“users”的根集合:

class User {
     String name;
     ...
}

此集合中的每个用户都是具有文档ID的文档。这些存储如

root->users->
    userId1->Name:Mark, ...
    userId2->Name:Zuck, ...
    userId2->Name:Erb, ...

User类应包含用于存储文档ID的字段userid吗?

这些用户也有朋友:

class User {
     String name;
     List<User> friends;
     ...
}

我该如何塑造这个?

  • 我应该将列表更改为List<String> friendsId吗?
  • 我应该使用

    之类的其他课程将List<User> friends移到外面

    class UserFriends{ User user; List<User> friends; }

    并制作另一个'userFriends'根集合?

  • 或任何其他方式。

1 个答案:

答案 0 :(得分:0)

对于您的第一个问题,是的,您可以将文档ID添加为Java对象上的字段。如果您与custom object mapping结合使用时要小心,您可能会无意中序列化ID。

你的第二个问题似乎可能是subcollections的好候选人。您可能希望以不同的方式查询用户的友谊,并且子集合使这非常容易。