当前位置: 首页 > 知识库问答 >
问题:

通用域名格式。谷歌。火力基地。数据库DatabaseException:无法转换java类型的对象。字符串输入com。测验便秘。最后的问题条目

穆华彩
2023-03-14

我正在构建一个社交应用程序,可以从firebase中保存和检索数据。但我发现了这个错误

com.google.firebase.database.数据库异常:无法将类型java.lang.字符串的对象转换为类型com.test.consti.last.在com.google.android.gms.internal.zzear.zzb(未知来源)在com.google.android.gms.internal.zzear.zza(未知来源)在com.google.firebase.database.DataSnapshot.get值(未知来源)在com.test.consti.last.FirebasHelper.fetch数据(FirebasHelper.java:28)在com.test.consti.last.FirebasHelper.access0美元(FirebasHelper.java:17)在com.test.consti.last.FirebasHelper$1.onChildAdded(Firebaseelper.java:36)在com.google.android.gms.internal.zzdri.zza(未知来源)在com.google.android.gms.internal.zzdwu.zzbvb(未知来源)在com.google.android.gms.internal.zzdxa.run(未知来源)在android.os.Handler. handleCallback(Handler. java: 730)在android. os.在android. os.在android. app.ActivityThread. main(ActivityThread. java: 5419)在java. lang.反射。方法。方法调用(方法. java: 525)在com. android. interal. os。ZygoteInit$method odAndArgsCaller. run(ZygoteInit. java: 1046)在com. android. interal. os。在dalvik. system上的ZygoteInit. main(ZygoteInit. java: 862)。NativeStart. main(本机方法)

这是我的消防员助手。我要从firebase数据库中检索数据(仅限于“问题”儿童内容)

public class FirebaseHelper {
 DatabaseReference db;
 Boolean saved=null;
 ArrayList<QuestionEntry> questionEntries =new ArrayList<>();
public FirebaseHelper(DatabaseReference db)  {
    this.db=db;
    }
private void fetchData (DataSnapshot dataSnapshot){
questionEntries.clear();
for (DataSnapshot ds :dataSnapshot.getChildren()){
//There is the error
    QuestionEntry questionEntry = ds.getValue(QuestionEntry.class);
    questionEntries.add(questionEntry);
}
}
public ArrayList<QuestionEntry> retreive (){
db.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        fetchData(dataSnapshot);
    }

    @Override
    public void onChildChanged(DataSnapshot dataSnapshot, String s) {
        fetchData(dataSnapshot);
    }

    @Override
    public void onChildRemoved(DataSnapshot dataSnapshot) {

    }

    @Override
    public void onChildMoved(DataSnapshot dataSnapshot, String s) {

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});
return questionEntries;
}

那么这就是问卷调查

public class QuestionEntry {
public String question_title;

public String question_id;
public   String tag_id;
public   String tag_name;
public   String question_content;
public String question_date;
public    String question_username;
public String interet;


public QuestionEntry(){

}

public void setQuestion_title(String question_title) {
    this.question_title = question_title;
}

public void setQuestion_id(String question_id) {
    this.question_id = question_id;
}

public void setTag_id(String tag_id) {
    this.tag_id = tag_id;
}

public void setTag_name(String tag_name) {
    this.tag_name = tag_name;
}

public void setQuestion_content(String question_content) {
    this.question_content = question_content;
}

public void setQuestion_date(String question_date) {
    this.question_date = question_date;
}

public void setQuestion_username(String question_username) {
    this.question_username = question_username;
}

public void setInteret(String interet) {
    this.interet = interet;
}

public String getQuestion_title() {
    return question_title;
}

public String getQuestion_id() {
    return question_id;
}

public String getTag_id() {
    return tag_id;
}

public String getTag_name() {
    return tag_name;
}

public String getQuestion_content() {
    return question_content;
}



public String getQuestion_username() {
    return question_username;
}

public String getInteret() {
    return interet;
}

public String getQuestion_date() {
    return question_date;
}
}

这是我的firebase数据库结构这是我的活动

这是我的活动

    public class Actu extends Fragment {
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.activity_actu, container, false);
        lv = (ListView) v.findViewById(R.id.actu_rv);
        db = FirebaseDatabase.getInstance().getReference("Questions");
        helper = new FirebaseHelper(db);
        adapter = new QuestionAdapter(getContext(),helper.retreive());
        lv.setAdapter(adapter);


        return v;        }
}

我已经将内容发布到firebase

共有1个答案

阎建华
2023-03-14

fetchData方法更改为:

private void fetchData (DataSnapshot dataSnapshot){
questionEntries.clear();
QuestionEntry questionEntry = dataSnapshot.getValue(QuestionEntry.class);
questionEntries.add(questionEntry);
 }

for循环在nodequestions的子节点中循环,由于子节点包含字符串,因此您将得到该错误。

 类似资料:
  • 这是我的数据库结构。我正试图获取订单的详细信息。 这是代码 但我得到了这个错误 这是我得到错误的线 有什么帮助或建议吗?

  • 问题内容: 对于类似的问题,我已经查看了其他一些答案,但不明白为什么我的系统无法正常工作。 我正在尝试让我的应用从Firebase读取命令并移动无人机。firebase中的命令来自单独的软件。该应用程序是基于Parrot Drone SDK示例代码构建的。 它似乎能够从命令对象中获取文本并将其附加到textview中,但是添加新的子项只会使其崩溃。添加新孩子时出现此错误。 下面是我在firebas

  • 你好,我正在用JavaSpring Boot做一个“CRUD网络应用程序”,我正试图将我的“CRUD网络应用程序”按钮功能从一个新页面更改为一个模态,我遇到了问题。 首先,当我单击“编辑”按钮时,我的表单没有填充它从数据库获得的数据,第二,当我单击“保存”时,它会向我显示此消息。 无法转换“java”类型的值。lang.String'转换为所需类型“long”;嵌套的异常是java。lang.Nu

  • 我是android和admob的新手。我下载了sdk...导入了play服务库,并完成了在sdk文档上编写的所有内容。但是当我添加xml片段时: 我在错误日志中收到以下消息 通用域名格式。谷歌。Androidgms。ads.AdView未能实例化。我知道之前有人问过这个问题,但没有一个对我有用。上述错误的错误日志: 另外,我已经从开普勒切换到eclipse luna,这是导致问题的原因吗?我的xm

  • 问题内容: 我要求Google帮我,我没有运气。:-(以下是产生错误的特定代码: 整个功能如下: 如果我错过了一些愚蠢的事情,请原谅我。谁能告诉我是什么引起了这个问题??? 问题答案: 问题在于$ uname是一个对象,而不是字符串。您需要调用$ uname的方法之一来访问数据。 应该这样做(或上述解决方案之一)。