我正在编写一个显示餐厅和用户评论的应用程序。我想显示评论,我有username、comment、date和user_photo。第一个问题是我应该在审核文档中保存用户名还是 userId 吗?第二个问题是如何显示用户的照片?我无法将其作为 URL 存储在文档中。因为如果用户更改照片,审阅文档中的照片不会发生更改。请注意,用户的照片存储在 Firestore Storage 中。解决这个问题的最佳实践是什么?AdapterReview.javapublic class AdapterReview extends FirestoreRecyclerAdapter<ReviewModel, HolderReviews>{public AdapterReview(@NonNull FirestoreRecyclerOptions<ReviewModel> options) { super(options);}@Overrideprotected 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@Overridepublic 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);}
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
第一个问题是我应该在审核文档中保存用户名还是 userId 吗?
肯定是uid
,因为它是独一无二的。对于用户名,它最终可能会发生冲突并尝试使用相同的用户名写入两个文档。
第二个问题是如何显示用户的照片?我无法将其作为 URL 存储在文档中。
在大多数情况下,我们使用的库可以帮助我们将图像设置为视图。为此我推荐你Glide。正如我在您的数据库中看到的那样,您已经将“照片”网址存储在文档中,这是正确的方法。
添加Glide
依赖项后,请更改以下代码行:
holder.photoImageView.setImageURI(???);
到
Glide.with(context).load(reviewObject.getPhoto()).into(holder.photoImageView);
添加回答
举报
0/150
提交
取消