gpt4 book ai didi

java - 无法将类型为 java.lang.String 的对象转换为类型为 com.mycare.OtherClass

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:33 24 4
gpt4 key购买 nike

我已经查看了一些类似问题的其他答案,但不明白为什么我的答案不起作用。在我的 firebase 数据库中,我有一个用户列表,它们下面有不同的信息。我想从当前 userId 检索信息到 recyclerview。

我的代码如下:

  DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference databaseStatus = rootRef.child("other");
String uid = firebaseAuth.getInstance().getCurrentUser().getUid();
databaseStatus.child(uid).addValueEventListener(new ValueEventListener() {

@Override
public void onDataChange(DataSnapshot snapshot) {

for (DataSnapshot ds : snapshot.getChildren()) {

for (DataSnapshot dSnapshot : ds.getChildren()) {

OtherClass otherClass = dSnapshot.getValue(OtherClass.class);
Log.d("Show", otherClass.getOname() == null ? "" : otherClass.getOname());
list.add(otherClass);
}

adapter = new ShowOtherDetails.OtherAdapter(ShowOtherDetails.this, list);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
progressDialog.dismiss();
}
}

这给了我这个错误:

  com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.mycare.OtherClass

firebase 数据结构如下所示:

enter image description here

拜托,有人可以帮帮我吗?

最佳答案

试试这个:

保存时这样做:

    String key = databaseStatus.child(uid).push().getKey()

这样你就可以拿到 key 了。


然后在第一种方法这里检索的时候把key作为child添加

databaseStatus.child(uid).child(key).addValueEventListener(new ValueEventListener() {

@Override
public void onDataChange(DataSnapshot snapshot) {



OtherClass otherClass = snapshot.getValue(OtherClass.class);
Log.d("Show", otherClass.getOname() == null ? "" : otherClass.getOname());
list.add(otherClass);
}

移除 for 循环 for (DataSnapshot ds : snapshot.getChildren())

或者这样做:

    databaseStatus.child(uid).addValueEventListener(new ValueEventListener() {

@Override
public void onDataChange(DataSnapshot snapshot) {

for (DataSnapshot ds : snapshot.getChildren()) {

for (DataSnapshot dSnapshot : ds.getChildren()) {

String date=dataSnapshot.child("date").getValue().toString();
String detail=dataSnapshot.child("detail").getValue().toString();
String email=dataSnapshot.child("email").getValue().toString();
String id=dataSnapshot.child("id").getValue().toString()
//and so on
}

关于java - 无法将类型为 java.lang.String 的对象转换为类型为 com.mycare.OtherClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com