答案 0 :(得分:2)
Firestore不具有跨集合的服务器端连接或投影的概念。每次查询或读取的文档只能从单个集合中获取数据。如果您需要从两个集合中加载数据,则至少需要读取两次。
因此,在您的情况下,您需要分别加载用户数据,通常将其缓存在代码的集合中,以防止过于频繁地加载同一用户。
另一种替代方法是将每个用户经常需要的数据复制到聊天文档中。在NoSQL数据库中对数据进行建模时,这种重复类型也很常见。
有关这些主题的更多信息,我强烈建议您阅读NoSQL data modeling并观看getting to know Cloud Firestore。
答案 1 :(得分:1)
您必须执行两个单独的读取。但是您将遇到的问题是读取数据在后台执行,您必须等待直到收到第二个读取数据。
答案 2 :(得分:0)
您可能无法同时查询两个集合,但仍可以获取用户详细信息。在获取帖子评论时,我做了同样的事情。您需要做的是有一个UsersAdapter类,该类扩展了Firestore Recycler适配器类,并且对rooms集合也是如此。 Firestore回收器适配器类侦听数据更改。因此,当您在适配器类的在线方法中接收到数据时,您可以在将其余数据加载到回收器视图之前获得那里的其余数据。
我希望这是有道理的