我正在尝试实现 Instagram 风格的评论部分。我有一个集合组查询/评论,可以使用 RecyclerView 很好地显示评论。在父 FirestoreRecyclerAdapter onBindViewHolder 里面我有这个。
DocumentSnapshot snapshot = getSnapshots().getSnapshot(holder.getAdapterPosition());
String commentId = snapshot.getId();
System.out.println("[CommentID: ]" + commentId);
Query rQuery = mFirestore.collectionGroup("comments")
.whereEqualTo("postId", commentId)
.orderBy("timestamp", Query.Direction.DESCENDING)
.limit(50);
FirestoreRecyclerOptions<SubCommentModel> options = new FirestoreRecyclerOptions.Builder<SubCommentModel>()
.setQuery(rQuery, SubCommentModel.class).build();
RecyclerView replyRecycler = holder.reply_recycler;
rAdapter = new FirestoreRecyclerAdapter<SubCommentModel, ReplyTypeViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull ReplyTypeViewHolder holder, int position, @NonNull SubCommentModel model) {
final SimpleDateFormat FORMAT = new SimpleDateFormat(
"MM/dd/yyyy", Locale.US);
((ReplyTypeViewHolder) holder).author_name.setText(model.getAuthor());
((ReplyTypeViewHolder) holder).comment_text.setText(model.getComment());
((ReplyTypeViewHolder) holder).time_stamp.setText(FORMAT.format(model.getTimestamp()));
}
@NonNull
@Override
public ReplyTypeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view;
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.comment_item, parent, false);
return new ReplyTypeViewHolder(view);
}
在这个块之外,我将 replyRecycler 设置为嵌套适配器;我设置了线性布局管理器并开始收听。
然而,这无济于事。事实上,对 cQuery 执行 addSnapShotLinstener 不会返回任何结果。没有错误也没有数据。