My Firebase Cloud database Structure
我的活动代码
private FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();
private CollectionReference collectionReference;
private void getData() {
mAuth = FirebaseAuth.getInstance();
FirebaseUser currentUser = mAuth.getCurrentUser();
mobileNumber = currentUser.getPhoneNumber();
collectionReference = firebaseFirestore.collection("OWNERS_DATA");
query = collectionReference.document(mobileNumber).collection("BUILDING_DATA");
FirestoreRecyclerOptions<AddBuilding> options = new FirestoreRecyclerOptions.Builder<AddBuilding>()
.setQuery(query, AddBuilding.class)
.build();
adapter = new OwnerBuildingListAdapter(options);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(adapter);
}
@Override
public void onStart() {
super.onStart();
adapter.startListening();
}
@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}
在我的Pojo类中,我给出了一个空的构造函数,构造函数,getter和setter。我在.setquery(query,AddBuilding.class)行遇到错误。我的适配器类看起来像这样。
public class OwnerBuildingListAdapter extends FirestoreRecyclerAdapter<AddBuilding, OwnerBuildingListAdapter.OwnerBuildingListHolder> {
public OwnerBuildingListAdapter(FirestoreRecyclerOptions<AddBuilding> options) {
super(options);
}
@Override
protected void onBindViewHolder(OwnerBuildingListHolder ownerBuildingListHolder, int i, AddBuilding addBuilding) {
ownerBuildingListHolder.buildingName.setText(addBuilding.getBuildingName());
String imageUrl = addBuilding.getImageUrl();
Picasso.get().load(imageUrl).into(ownerBuildingListHolder.buildingImage);
}
@NonNull
@Override
public OwnerBuildingListHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_cardview, parent, false);
return new OwnerBuildingListHolder(view);
}
class OwnerBuildingListHolder extends RecyclerView.ViewHolder{
TextView buildingName;
ImageView buildingImage;
public OwnerBuildingListHolder(@NonNull View itemView) {
super(itemView);
buildingName = itemView.findViewById(R.id.text_view);
buildingImage = itemView.findViewById(R.id.image_view);
}
}
}
如果运行该程序,我会收到此错误
FATAL EXCEPTION: main
Process: com.yrrsolutions.ram, PID: 9717
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/firestore/QueryListenOptions;
at com.firebase.ui.firestore.FirestoreRecyclerOptions$Builder.setQuery(FirestoreRecyclerOptions.java:108)
at com.yrrsolutions.ram.owner_portal.OwnerMyBuildingsFragment.getData(OwnerMyBuildingsFragment.java:100)
at com.yrrsolutions.ram.owner_portal.OwnerMyBuildingsFragment.onCreateView(OwnerMyBuildingsFragment.java:85)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2663)
at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:246)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:542)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
at com.yrrsolutions.ram.owner_portal.OwnerDashboardActivity.onStart(OwnerDashboardActivity.java:203)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1392)
at android.app.Activity.performStart(Activity.java:7316)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3132)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
您能帮我解决这个问题吗?>
我的Firebase云数据库结构我的活动代码私有FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance(); private CollectionReference collectionReference; private void ...
将firestore ui依赖项更新为最新版本: