Нет сеттера / получателя Firebase - PullRequest
0 голосов
/ 20 февраля 2020

Привет всем, у меня есть один вопрос. Я хочу получить данные из действующей базы данных Firebase, и она постоянно говорит мне, что она не находит геттер и сеттер, но, как вы можете видеть ниже, я сделал это, я создаю класс, в котором у меня есть сеттер и геттер с то же имя полей базы данных.

Может кто-нибудь сказать мне, что я делаю неправильно, потому что у меня нет подсказки?

Заранее спасибо.

Фотография базы данных:

enter image description here

Код Деятельности и Класса, где вы можете видеть, что у меня есть геттер и сеттер.

package com.example.ipill;

public class CartActivity extends AppCompatActivity {

    private TextView total;
    private ImageButton removeFromCart;
    private Button pay;


    private RecyclerView mResultList;
    private DatabaseReference mUserDatabase;
    public static int cart_count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cart);
        mUserDatabase = FirebaseDatabase.getInstance().getReference("Cart");

        total        = findViewById(R.id.TotalPrice);
        removeFromCart   = findViewById(R.id.removeFromCart);
        mResultList  = findViewById(R.id.cartList);
        pay    = findViewById(R.id.pay);


        mResultList.setHasFixedSize(true);
        mResultList.setLayoutManager(new LinearLayoutManager(this));



         // Attach a listener to read the data at our posts reference
          mUserDatabase.addValueEventListener(new ValueEventListener() {


            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Users_get post = dataSnapshot.getValue(Users_get.class);
                System.out.println("DATAAAA: "+post);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                System.out.println("The read failed: " + databaseError.getCode());
            }
        });
    }



    @Override
    protected void onStart() {
        super.onStart();
        invalidateOptionsMenu();
    }

    // View Holder Class
    public static class UsersViewHolder extends RecyclerView.ViewHolder {
        View mView;
        String nome;
        String surname;
        Long prezzo;
        public UsersViewHolder(View itemView) {
            super(itemView);
            mView = itemView;

        }

        public void getDetails(String name,String cognome,Long price){
            nome=name;
            surname=cognome;
            prezzo=price;
        }


        public void setDetails(String name, String surname, Long price) {

            TextView user_name = (TextView) mView.findViewById(R.id.name_text);
            TextView user_surname = (TextView)mView.findViewById(R.id.status_text);
            TextView user_price = (TextView)mView.findViewById(R.id.price);

            user_name.setText(name);
            user_surname.setText(surname);
            user_price.setText(Long.toString(price));

        }
     }
}

КЛАСС

public class Users_get  {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSurname() {
        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public Long getPrice() {
        return price;
    }

    public void setPrice(Long price) {
        this.price = price;
    }

    private String name, surname;
    private Long price;
}

JSON структура

{
  "Cart": {
    "-M0U3UXq2ZA00Jq5o9as": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    },
    "-M0WlUbQHj1hdH40uWVF": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    },
    "-M0WxZhI98Xb1s9Xy5HV": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    },
    "-M0X00Zr64RocyQHhoFB": {
      "name": "Alex",
      "price": 120,
      "surname": "Kyto"
    }
  },
  "Users": {
    "01": {
      "Name": "Alex",
      "Price": 120,
      "Surname": "Kyto"
    },
    "02": {
      "Name": "Alex",
      "Price": 200,
      "Surname": "Pablo"
    }
  }
}

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

Вы получаете предупреждение, потому что в вашем классе Users_get нет правильных получателей для ваших полей. Если у вас есть поле с именем name, правильный получатель должен быть:

public String getName() {
    return name;
}

И не :

public String getname() {
    return name;
}

См. Заглавную N против строчные n? Чтобы решить эту проблему, вы должны изменить все имена всех получателей в вашем классе Users_get, как описано выше.

1 голос
/ 20 февраля 2020

В дополнение к другому ответу, чтобы получить Users_get данные, в соответствии с вашей структурой базы данных вам нужно go еще на один уровень.

В настоящее время ссылка на вашу базу данных указывает на Корзина . Так что перебирайте детей корзины, чтобы получить данные корзины. Проверьте ниже:

mUserDatabase = FirebaseDatabase.getInstance().getReference("Cart");
mUserDatabase.addValueEventListener(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
            Users_get post = childSnapshot.getValue(Users_get.class);
            System.out.println("DATAAAA: " + post);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        System.out.println("The read failed: " + databaseError.getCode());
    }
});
1 голос
/ 20 февраля 2020

Измените класс следующим образом:

public class Users_get  {

private String name, surname;
private Long price;


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getSurname() {
    return surname;
}

public void setSurname(String surname) {
    this.surname = surname;
}

public Long getPrice() {
    return price;
}

public void setPrice(Long price) {
    this.price = price;
}


public Users_get(String name,Long price,String surname) {
    this.price = price;
    this.name = name;
    this.surname = surname;

}


public Users_get() {

}

Поскольку вы используете IDE, просто нажмите «Генерировать геттеры и сеттеры», и он автоматически сделает это вместо вас вместо написания методов вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...