java - 在 Firestore 中显示用户的照片
问题描述
我正在编写一个显示餐厅和用户评论的应用程序。
我想显示评论,我有username
、comment
和。date
user_photo
第一个问题是我应该在审阅文档中保存 username 还是 userId ?
第二个问题是如何显示用户的照片?我不能将它作为 URL 存储在文档中。
因为如果用户更改照片,它不会在审阅文档中更改。请注意,用户的照片存储在 Firestore 存储中。
解决此问题的最佳做法是什么?
AdapterReview.java
public class AdapterReview extends FirestoreRecyclerAdapter<ReviewModel, HolderReviews>{
public AdapterReview(@NonNull FirestoreRecyclerOptions<ReviewModel> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull HolderReviews holder, int i, @NonNull ReviewModel reviewObject) {
holder.usernameTextView.setText(reviewObject.getUsername());
holder.dateTextView.setText(reviewObject.getDate());
holder.commentTextView.setText(reviewObject.getComment());
holder.photoImageView.setImageURI(???);
}
@NonNull
@Override
public HolderReviews onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_adapter, parent, false);
return new HolderReviews(view);
}
}
这个在 MainActivity.java 中创建 firestore recyclerview 的方法
private void fireStoreRecyclerViews( ) {
Query query = db.collection("reviews");
FirestoreRecyclerOptions<ReviewModel> options = new FirestoreRecyclerOptions.Builder<ReviewModel>()
.setQuery(query, ReviewModel.class)
.build();
adapterReview = new AdapterReview(options);
RecyclerView recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this);
recyclerView.setAdapter(adapterReview);
}
解决方案
第一个问题是我应该在审阅文档中保存用户名还是 userId 吗?
绝对是uid
, since 是独一无二的。在用户名的情况下,它最终可能会发生冲突并尝试使用相同的用户名编写两个文档。
第二个问题是如何显示用户的照片?我不能将它作为 URL 存储在文档中。
在大多数情况下,我们使用的库可以帮助我们将图像设置为视图。为此,我建议您Glide。正如我在您的数据库中看到的那样,您已经将“照片”网址存储在文档中,这是一种正确的方法。
添加Glide
依赖项后,请更改以下代码行:
holder.photoImageView.setImageURI(???);
至
Glide.with(context).load(reviewObject.getPhoto()).into(holder.photoImageView);
推荐阅读
- .htaccess - 将文件夹重定向到子文件夹
- html - Twig - 检查数组中是否有任何数字大于 0.00
- php - iframe con PHP 传递值
- java - 在java中集成yolov5 for android APK
- shopify - Shopify - 创建支付网关
- asp.net-mvc - 我该如何预防
启用主机内处理时,标签不会在 web.config 中自动生成? - redis - 为单个 redis 从属指定 redis 复制
- javascript - 在javascript中返回'Yes','No'而不是true,false的奇怪实现
- java - Intellij IDEA 社区中使用 Workday Extend 的插件出现 IDE 致命错误但显示 java 错误?
- php - 如何将 CURL 转换为 Guzzle HTTP?