Не удается преобразовать объект типа java.lang.Boolean в ошибку Android - PullRequest
1 голос
/ 24 июня 2019

Я извлекаю Boolean из Firebase.Однако при получении этих данных появляется ошибка Can't convert object of type java.lang.Boolean.

Firebase Database Как получить данные Boolean?

List<Product> productList;
List<Boolean> productListStates;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
    DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
    final DatabaseReference ref = mDatabase.child("0").child("states").child("001");
    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            Product p = snapshot.getValue(Product.class);
            productListStates.add(p.getStates());
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}

Класс продукта:

public class Product {

    private String places;
    private String time;
    private String title;
    private String id;
    private boolean States;

    public Product(){
    }

    public Product(String places, String time, String title, String id, boolean States) {
        this.places = places;
        this.time = time;
        this.title = title;
        this.id = id;
        this.States = States;
    }

    public String getplaces() {
        return places;
    }

    public String gettime() {
        return time;
    }

    public String gettitle() {
        return title;
    }

    public String getid() {
        return id;
    }

    public boolean getStates() {
        return States;
    }
}

1 Ответ

0 голосов
/ 24 июня 2019

Как я вижу в вашей схеме, под узлом states нет объекта типа Product, это только свойство типа boolean.Вот почему вы получаете эту ошибку.Чтобы решить эту проблему, используйте следующие строки кода:

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
final DatabaseReference ref = mDatabase.child("0").child("states").child("001");
ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        booblean b = snapshot.getValue(Boolean.class);
        Log.d(TAG, String.valueOf(b));
    }
    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
});

}

Результат в logcat будет:

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