com.google.firebase.database.DatabaseException: невозможно преобразовать объект типа java.lang.String в тип com.example.project.models.NotifyOrder. - PullRequest
0 голосов
/ 04 мая 2019

Я не знаком с базой данных Fire base. Пошёл извлекать данные из базы данных Fire-base. Порядок уведомлений для отображения данных о текущем онлайн-пользователе. но проблема в том, что когда я добавляю дочерний элемент (Prevalent.Currentonlineuser.getUsername)), это исключение появляется, в противном случае, когда я не добавляю Current online, он показывает все данные, но я хочу показать пользователю определенного дочернего элемента, поэтому, пожалуйста, помогите мне с этим.

Показать класс уведомлений

public class ShowNotify extends AppCompatActivity {
    private DatabaseReference ShowNotify;
    private RecyclerView recyclerView;
    RecyclerView.LayoutManager layoutManager;;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_notify);
        recyclerView = findViewById(R.id.NotifyRecycler);
        recyclerView.setHasFixedSize(true);
        ShowNotify = FirebaseDatabase.getInstance().getReference().child("Notify User");
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);

    }
      protected void onStart() {
        super.onStart();


           FirebaseRecyclerOptions<NotifyOrder> search =
           new FirebaseRecyclerOptions.Builder<NotifyOrder>()
          .setQuery(ShowNotify.child("Customers")
          .child(Prevalent.currentOnlineUser.getUsername())
          .child("Order Update info")

          , NotifyOrder.class).build();
            FirebaseRecyclerAdapter<NotifyOrder, NotifyAdabter> adapter =
            new FirebaseRecyclerAdapter<NotifyOrder, NotifyAdabter>(search) {
             @Override
            protected void onBindViewHolder(@NonNull NotifyAdabter holder, int position, @NonNull final NotifyOrder model) {

              ////Retrieving Product Values on the database
               holder.ShipmentStatus.setText(model.getShipmentStatus());
               holder.Date.setText(model.getDate());
               holder.Msg.setText(model.getMsg());
               holder.Remove.setOnClickListener(new View.OnClickListener() {
              @Override
             public void onClick(View view) {

              }
            });
          }
         @NonNull
         @Override
         public NotifyAdabter onCreateViewHolder(@NonNull ViewGroup parent, int i) {
         View itemView = LayoutInflater.from(parent.getContext())
        .inflate(R.layout.cartview, parent, false);
         NotifyAdabter holder = new NotifyAdabter(itemView);
          return holder;
                    }
                };
        recyclerView.setAdapter(adapter);
        adapter.startListening();
    }

    }

NotifyAdapter

public class NotifyAdabter extends RecyclerView.ViewHolder implements View.OnClickListener

{
    //Declaring attributes
    public ImageView Remove;
    public TextView ShipmentStatus,Date,Msg ;

    public NotifyAdabter(View itemView)
    {
        super(itemView);


        ShipmentStatus =     itemView.findViewById(R.id.Shipment);
        Date =               itemView.findViewById(R.id.DateTime);
        Msg =                itemView.findViewById(R.id.Msg);
        Remove =             itemView.findViewById(R.id.remove);
    }

    @Override
    public void onClick(View view) {

    }
}

NotifyOrderModel

public class NotifyOrder {
    private String Username ,Msg ,Date ,ShipmentStatus;
    public NotifyOrder(){ }

    public NotifyOrder(String username, String msg, String date, String shipmentStatus) {
        Username = username;
        Msg = msg;
        Date = date;
        ShipmentStatus = shipmentStatus;
    }

    public String getUsername() {
        return Username;
    }

    public void setUsername(String username) {
        Username = username;
    }

    public String getMsg() {
        return Msg;
    }

    public void setMsg(String msg) {
        Msg = msg;
    }

    public String getDate() {
        return Date;
    }

    public void setDate(String date) {
        Date = date;
    }

    public String getShipmentStatus() {
        return ShipmentStatus;
    }

    public void setShipmentStatus(String shipmentStatus) {
        ShipmentStatus = shipmentStatus;
    }
}

Вот мои целевые данные для извлечения

...