【发布时间】:2020-03-03 17:45:10
【问题描述】:
我希望 firestore recyclerview 适配器仅从服务器而不是从缓存加载数据。 “如果设备离线,我希望适配器不显示任何内容。” 但我不知道如何做到这一点,我搜索了它。我发现的是在普通的 get(); 方法中执行此操作的方法仅用于检索特定数据,但我没有找到任何人来解释使用 firebase firestore 适配器执行此操作的方法。
这是我的 MainActivity 代码。
public class MainActivity extends AppCompatActivity {
private FirebaseFirestore db;
RecyclerView recyclerView;
private FirestoreRecyclerviewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
db=FirebaseFirestore.getInstance();
//Query
Query query = db.collection("collection");
FirestoreRecyclerOptions<ItemClass> options=new FirestoreRecyclerOptions.Builder<ItemClass>()
.setQuery(query, ItemClass.class)
.build();
recyclerView=findViewById(R.id.recycler);
final LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
adapter = new FirestoreRecyclerviewAdapter( options, this );
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(layoutManager);
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
这是适配器类... Firestore 适配器
public class FirestoreRecyclerviewAdapter extends FirestoreRecyclerAdapter<ItemClass, FirestoreRecyclerviewAdapter.MyViewHolder> {
public FirestoreRecyclerviewAdapter (@NonNull FirestoreRecyclerOptions<ItemClass> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull MyViewHolder holder, int position, @NonNull ItemClass item) {
//Binding code.
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new MyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false));
}
public class MyViewHolder extends RecyclerView.ViewHolder {
//view components
public MyViewHolder(@NonNull View itemView) {
super(itemView);
//initializing item components
}
}
}
【问题讨论】:
标签: android firebase android-recyclerview google-cloud-firestore firebaseui