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

标签 android firebase google-cloud-firestore

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

class User {
     String name;
     ...
}

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

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

应该User类包含一个字段 userid存储文档ID?

这些用户也有 friend :

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

我应该如何建模?

  • 我应该将列表更改为 List<String> friendsId 吗? ?
  • 我应该删除 List<User> friends 吗?到外面的另一个类(class),例如

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

    并创建另一个“userFriends”根集合?

  • 或任何其他方式。

最佳答案

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

你的第二个问题似乎很适合 subcollections .您可能想以不同的方式查询用户的好友关系,而子集合让这变得非常简单。

关于android - 如何在 FireStore 中为具有字段 `User` 的类 `List<User> friends` 建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47016644/

相关文章:

javascript - 谷歌地图- oninfowindowclicklistener 启动新 Activity

ios - CocoaPods 因错误停止安装 Firebase/Analytics

google-cloud-firestore - 烈焰计划。未配置结算帐号。外网无法访问

android - 有没有一种方法可以设置和合并而无需仅为 1 个值创建映射

android - 未指定网络安全配置,使用平台默认设置

android - 与前台服务android通信

java - 没有收到来自 firebase 的推送通知但是使用 Pusher 应用程序

javascript - 使用firebase的用户注册和登录错误 "Reference.push failed: second argument must be a valid function"

javascript - 错误错误 : Function DocumentReference. set() 使用无效数据调用。不支持的字段值:undefined(在字段activityId中找到)

firebase - Firestore监听器无法按预期工作