【发布时间】:2019-02-23 14:03:08
【问题描述】:
我有一个包含 uId、姓名、照片的用户集合
我有一个包含 uId、userId、位置的访问集合
我有一个 recyclerview,我想在其中显示带有用户名和照片的位置
我可以使用引用字段类型吗?如果是这样,Firestore 将如何知道链接 visit.userId == users.uId ?
也许我首先需要查询所有访问,然后查询相关用户,但有两件事:
表示查询很多次。
我不明白如何将连接的集合收集到基于一个查询的适配器中?
请指教 谢谢
当前代码
visitsList = db.collection("visitsList");
Query query = visitsList.whereEqualTo("userId",prefs.getString("id","")).orderBy("visitDate", Query.Direction.ASCENDING);
FirestoreRecyclerOptions<AVisit> options = new FirestoreRecyclerOptions.Builder<AVisit>().setQuery(query, AVisit.class).build();
adapter = new VisitsListAdapter(options, VisitsListActivity.this);
RecyclerView rv = findViewById(R.id.rvVisitsList);
rv.setHasFixedSize(true);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setAdapter(adapter);
代码是来自集合的简单查询,不知道如何从该集合中的 userId 字段中获取名称和照片。
【问题讨论】:
-
对于#2)如果您在编写代码时遇到问题,请分享minimal code that reproduces the problem(请阅读链接,因为它非常有用)。
-
已更新。当前代码从集合中简单查询。
-
啊,所以您正在使用 FirebaseUI,并且想知道如何在访问列表中显示来自用户配置文件的数据。对于未来的问题:那将是一个很好的标题。 :) 我没有为此准备任何代码,但我希望有两个主要选项:1)在
populateView或自定义parseSnapshot实现中加载附加用户文档,2)在访问集合(这在 NoSQL 数据库中很正常)。另请参阅 Alex 的回答:stackoverflow.com/q/48756129。
标签: android firebase google-cloud-firestore firebaseui