【发布时间】:2019-11-21 04:00:48
【问题描述】:
我有一个本地存储在字符串列表中的用户最喜欢项目的 ID 列表。现在,当用户打开他最喜欢的部分时,应用程序需要从 Cloud Firestore 获取本地收藏列表中的所有项目。现在我看到的只是接受一个字段和一个字符串的查询(在我的例子中,一次只有一个最喜欢的项目的 id)。
有没有办法在单个操作中将 ID 列表作为查询传递并获取结果。我现在正在做的是将ID传递给RecylerView适配器并在BindViewHolder中一一获取。
@Override
public void onBindViewHolder(final ImageViewHolder holder, int position) {
db.whereEqualTo("imageId",mUploads.get(position))
.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
List<Upload> uploadsList = queryDocumentSnapshots.toObjects(Upload.class);
Upload uploadCurrent = uploadsList.get(0);
holder.materialCardView.setCardBackgroundColor(Color.parseColor(uploadCurrent.getImageColor()));
Glide.with(mContext)
.load(uploadCurrent.getImageUrl())
.transition(DrawableTransitionOptions.withCrossFade())
.centerCrop()
.into(holder.imageView);
}
});
}
【问题讨论】:
-
我不相信有。我很确定你必须做一个 for 循环并将数据传递给你的适配器并通知它,或者继续做你正在做的事情。
-
每次在适配器中重复数据获取有点开销吧?
标签: java android firebase google-cloud-firestore firebaseui