【问题标题】:get a list in object from firebase in android从android中的firebase获取对象列表
【发布时间】:2017-03-29 12:07:44
【问题描述】:

我想从firebase获取颜色列表,下面的代码是获取颜色的方法

型号:Product.java

package fyp.hkust.facet.model;

public class Product {

private String name;
private String brand;
private String desc;
private String image;
private String username;
private String uid;

private String color;

public Product()
{

}

public Product(String name,String brand, String desc, String image,String username,String uid,String color) {
    this.name = name;
    this.brand = brand;
    this.desc = desc;
    this.image = image;
    this.username = username;
    this.uid = uid;
    this.color = color;
}

public String getName() {

    return name;
}

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

public String getBrand() {
    return brand;
}

public void setBrand(String brand) {
    this.brand = brand;
}

public String getDesc() {
    return desc;
}

public void setDesc(String desc) {
    this.desc = desc;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getUid() {
    return uid;
}

public void setUid(String uid) {
    this.uid = uid;
}

public String getColor() {
    return color;
}

public void setColor(String color) {
    this.color = color;
}

}

我使用上述模型得到的方法

mDatabase.child(product_id).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.getValue() != null) {
                Log.i("product dataSnapshot.getValue()", dataSnapshot.getValue().toString());
                final Product product_data = dataSnapshot.getValue(Product.class);
                backUp_product_data = product_data;
                if (product_data.getName() != null)
                    product_name_text.setText(product_data.getName());
                if (product_data.getBrand() != null)
                    brand_name_text.setText(product_data.getBrand());
                if (product_data.getDesc() != null)
                    descTextview.setText(product_data.getDesc());
                if( product_data.getUid() != null)
                    product_owner_id = product_data.getUid();

                if(product_data.getColor() != null)
                {
                    Log.d(TAG + " color" , product_data.getColor().toString());

                }
            }
        }
     @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.e(TAG, "Failed to read value.", error.toException());
        }
    });

E/UncaughtException: com.google.firebase.database.DatabaseException: 无法将 java.util.ArrayList 类型的值转换为字符串

我收到了上述错误。我怎样才能把它们作为一个列表?请给我一些帮助。非常感谢。

【问题讨论】:

    标签: android list arraylist firebase-realtime-database


    【解决方案1】:
     for (DataSnapshot child : dataSnapshot.getChildren()) {
      YOUR_MODEL model = child.getValue(YOUR_MODEL.class);
                                    }
    

    如果你返回 Array Of Objects ,则没有一个对象

    如果你能展示你的 FCM 数据库会很好

    .................................................. ............ 更新

    您现在的问题在于颜色,因为它是数组

    在您的模型中,您将颜色作为字符串,现在颜色是数据库中的数组

    因此您可以编辑模型并将字段“Color”更改为“colorNO”并将其设置为 int,就像在您的数据库中一样

    【讨论】:

    • 所以你的意思是我需要再打开一个模型颜色,java来获取颜色?显示我的 FCM 数据库是什么意思?整个数据库结构?谢谢
    猜你喜欢
    • 1970-01-01
    • 2016-07-10
    • 2019-07-09
    • 2015-12-29
    • 2017-03-08
    • 2017-03-13
    • 2018-01-19
    相关资源
    最近更新 更多