【发布时间】:2023-03-15 12:15:01
【问题描述】:
我按照此视频在我的应用中显示了 firebase-firestore 数据。 但它没有加载,显示空白屏幕。 除了变量之外,我几乎遵循了所有相同的代码,但我不知道为什么它不起作用。我检查了firestore中的规则,它允许读写。 这是我的代码,我尝试重新定位线条,再次设置布局......但不起作用。 请帮我。 (哦,而且运行代码没有错误)
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private RecyclerView recyclerViewlist;
private FirestoreRecyclerAdapter adapter;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.floatingActionButton).setOnClickListener(onClickListener);
recyclerViewlist = findViewById(R.id.recyclerView);
recyclerViewlist.setHasFixedSize(true);
init();
getPostList();
adapter.notifyDataSetChanged();
recyclerViewlist.setAdapter(adapter);
}
private void init() {
recyclerViewlist.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
db = FirebaseFirestore.getInstance();
}
private void getPostList() {
Query query = db.collection("post");
//recyclerOptions
FirestoreRecyclerOptions<Writeinfo> options = new FirestoreRecyclerOptions.Builder<Writeinfo>()
.setQuery(query, Writeinfo.class)
.build();
adapter = new FirestoreRecyclerAdapter<Writeinfo, WriteinfoViewHolder>(options) {
@NonNull
@Override
public WriteinfoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycleview_layout, parent, false);
return new WriteinfoViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull WriteinfoViewHolder holder, int position, @NonNull Writeinfo model) {
Log.e("WOW", Integer.toString(position));
holder.cvTitle.setText(model.getTitle());
holder.cvContents.setText(model.getContents());
// holder.cvContents.setText(model.getContents());
}
@Override
public void onError(FirebaseFirestoreException e) {
Log.e("error", e.getMessage());
}
};
}
private static class WriteinfoViewHolder extends RecyclerView.ViewHolder {
public TextView cvTitle;
public TextView cvContents;
public WriteinfoViewHolder(View itemView) {
super(itemView);
cvTitle = itemView.findViewById(R.id.cvTitle);
cvContents = itemView.findViewById(R.id.cvContents);
}
}
@Override
protected void onStop(){
super.onStop();
adapter.stopListening();
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
【问题讨论】:
-
这是我关注的视频
标签: android firebase google-cloud-firestore android-recyclerview