无法使用 FirbaseUI 和 Cloud Firestore 访问 Recyclerview 位置
Cannot Access Recyclerview Position Using FirbaseUI with Cloud Firestore
我正在将我的应用程序从 Firebase 数据库迁移到 Firebase Cloud Firestore。
之前,我将 FirebaseUI 用于实时数据库。初始化所有选项并在实时数据库中创建适配器后,我在 RecyclerView 的视图上调用了 .setOnClickListener() 以导航到新的 activity:
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent toClickedPoll = new Intent(getActivity(), PollHostActivity.class);
toClickedPoll.putExtra("POLL_ID", mFireAdapter.getRef(holder.getAdapterPosition()).getKey());
startActivity(toClickedPoll);
}
});
我传递的额外信息是我的 Firebase 实时数据库中位置的键。
我正在尝试通过 Cloud Firestore 的 FirebaseUI 访问相同的 "key"。下面是我的代码:
mFirestoreAdaper = new FirestoreRecyclerAdapter<Poll, PollHolder>(storeOptions) {
@Override
protected void onBindViewHolder(@NonNull final PollHolder holder, int position, @NonNull Poll model) {
holder.mPollQuestion.setText(model.getQuestion());
String voteCount = String.valueOf(model.getVote_count());
//TODO: Investigate formatting of vote count for thousands
holder.mVoteCount.setText(voteCount);
Picasso.with(getActivity().getApplicationContext())
.load(model.getImage_URL())
.fit()
.into(holder.mPollImage);
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent toClickedPoll = new Intent(getActivity(), PollHostActivity.class);
String position = String.valueOf(mFirestoreAdaper.getItemId(holder.getAdapterPosition()));
Log.v("Firestore ID", position);
toClickedPoll.putExtra("POLL_ID", position);
startActivity(toClickedPoll);
}
});
}
现在,位置变量(我已经记录)是 returning -1。我基本上希望它 return 下面的民意调查文件:
试试这个:
String positions = getSnapshots().getSnapshot(position).getId();
Log.v("Firestore ID", positions);
toClickedPoll.putExtra("POLL_ID", positions);
而不是这个:
String position = String.valueOf(mFirestoreAdaper.getItemId(holder.getAdapterPosition()));
Log.v("Firestore ID", position);
toClickedPoll.putExtra("POLL_ID", position);
我正在将我的应用程序从 Firebase 数据库迁移到 Firebase Cloud Firestore。
之前,我将 FirebaseUI 用于实时数据库。初始化所有选项并在实时数据库中创建适配器后,我在 RecyclerView 的视图上调用了 .setOnClickListener() 以导航到新的 activity:
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent toClickedPoll = new Intent(getActivity(), PollHostActivity.class);
toClickedPoll.putExtra("POLL_ID", mFireAdapter.getRef(holder.getAdapterPosition()).getKey());
startActivity(toClickedPoll);
}
});
我传递的额外信息是我的 Firebase 实时数据库中位置的键。
我正在尝试通过 Cloud Firestore 的 FirebaseUI 访问相同的 "key"。下面是我的代码:
mFirestoreAdaper = new FirestoreRecyclerAdapter<Poll, PollHolder>(storeOptions) {
@Override
protected void onBindViewHolder(@NonNull final PollHolder holder, int position, @NonNull Poll model) {
holder.mPollQuestion.setText(model.getQuestion());
String voteCount = String.valueOf(model.getVote_count());
//TODO: Investigate formatting of vote count for thousands
holder.mVoteCount.setText(voteCount);
Picasso.with(getActivity().getApplicationContext())
.load(model.getImage_URL())
.fit()
.into(holder.mPollImage);
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent toClickedPoll = new Intent(getActivity(), PollHostActivity.class);
String position = String.valueOf(mFirestoreAdaper.getItemId(holder.getAdapterPosition()));
Log.v("Firestore ID", position);
toClickedPoll.putExtra("POLL_ID", position);
startActivity(toClickedPoll);
}
});
}
现在,位置变量(我已经记录)是 returning -1。我基本上希望它 return 下面的民意调查文件:
试试这个:
String positions = getSnapshots().getSnapshot(position).getId();
Log.v("Firestore ID", positions);
toClickedPoll.putExtra("POLL_ID", positions);
而不是这个:
String position = String.valueOf(mFirestoreAdaper.getItemId(holder.getAdapterPosition()));
Log.v("Firestore ID", position);
toClickedPoll.putExtra("POLL_ID", position);