我无法从Cloud Firestore获取数据

问题描述 投票:1回答:1

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 ...

android firebase google-cloud-firestore
1个回答
1
投票

将firestore ui依赖项更新为最新版本:

© www.soinside.com 2019 - 2024. All rights reserved.