简体   繁体   中英

Retrieving Data From Firestore Firebase

I am working on an Inventory Management app for which I tried to retrieve data from my fire store database but I am not able to get why. I created a Adapter file and and Data file and linked them with main file

My Code for Main Activity file

package com.example.inventorymanagment;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.google.firebase.firestore.DocumentChange;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.Query;

import java.util.ArrayList;


public class Measure extends AppCompatActivity {

 RecyclerView recyclerView;
 ArrayList<data> itemList;
 adapter adapter;
 FirebaseFirestore db;




 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_measure);



 recyclerView= findViewById(R.id.recyclerview);
 recyclerView.setHasFixedSize(true);
 recyclerView.setLayoutManager(new LinearLayoutManager(this));


 db = FirebaseFirestore.getInstance();
itemList= new ArrayList<>();
adapter= new adapter(Measure.this,itemList);

recyclerView.setAdapter(adapter);

getdata();


 }

@SuppressLint("NotifyDataSetChanged")
private void getdata() {

db.collection("Inventory").orderBy("Name", Query.Direction.ASCENDING)
        .addSnapshotListener((value, error) -> {
            if(error!=null){
                Log.e("Firestore error",error.getMessage());
            return;
        }

        for(DocumentChange dc : value.getDocumentChanges()){
            if(dc.getType() == DocumentChange.Type.ADDED){
                itemList.add(dc.getDocument().toObject(data.class));
            }
            adapter.notifyDataSetChanged();
        }

        });
     }

  }

Code for Adapter file

package com.example.inventorymanagment;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import  androidx.recyclerview.widget.RecyclerView;



import java.util.ArrayList;

public class adapter extends RecyclerView.Adapter<adapter.MyViewHolder>{


  Context context;
  ArrayList<data> itemList;

   public  adapter(Context context, ArrayList<data>itemList)
   {
    this.context = context;
   this.itemList = itemList;
   }

@NonNull

@Override
     public adapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View v = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
    return new MyViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {

  data data = itemList.get(position);
  holder.Name.setText(data.Name);
  holder.Quantity.setText(String.valueOf(data.Quantity));
}



@Override
public int getItemCount() {
    return itemList.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder{

    TextView Name, Quantity;



    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        Name=itemView.findViewById(R.id.name);
        Quantity=itemView.findViewById((R.id.quantity));
    }
}
} 

My Code for Data file

  package com.example.inventorymanagment;

public class data {

 String Name;
 long Quantity;

  public data(){}

public data(String name, long quantity) {
    Name = name;
    Quantity = quantity;
 }

public String getName() {
    return Name;
}

public void setName(String name) {
    Name = name;
}

public long getQuantity() {
    return Quantity;
}

public void setQuantity(long quantity) {
    Quantity = quantity;
}
  }

please help me find my error

  In onBindViewHolder(@NonNull MyViewHolder holder, int position) {
     data data = itemList.get(position);
     holder.Name.setText(data.Name);
     holder.Quantity.setText(String.valueOf(data.Quantity));

try setting data.getName() instead of data.Name

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM