com.google.firebase.database.DatabaseException:发现名称:isChangi



我正在尝试从Firebase数据库中读取数据。我的应用程序在运行时崩溃,我似乎收到这个正在更改配置错误。请注意,此 Info 类是一个片段,我不想使用 listview 读取数据库。如何解决此问题?

从这里读取数据

public class Info extends Fragment {
private DatabaseReference mDatabase;
private FirebaseAuth firebaseAuth;
String userID;
private TextView resNameChange, statusChange;
public Info() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_info, container, false);
mDatabase = FirebaseDatabase.getInstance().getReference();
firebaseAuth = FirebaseAuth.getInstance();
FirebaseUser user = firebaseAuth.getCurrentUser();
userID = user.getUid();
resNameChange = rootView.findViewById(R.id.resNameChange);
statusChange = rootView.findViewById(R.id.statusChange);
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
showData(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return rootView;
}
public void showData(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
RestaurantInformation resInfo = new RestaurantInformation();
resInfo.setResName(ds.child(userID).getValue(RestaurantInformation.class).getResName()); // error in this line ************
resInfo.setStatus(ds.child(userID).getValue(RestaurantInformation.class).getStatus());
resNameChange.setText(resInfo.getResName());
statusChange.setText(resInfo.getStatus());
}
}
}

餐厅信息类

public class RestaurantInformation extends AppCompatActivity {
private String resName;
private String status;
public RestaurantInformation() {
}
public RestaurantInformation(String resName, String status) {
this.resName = resName;
this.status = status;
}
public String getResName() {
return resName;
}
public void setResName(String resName) {
this.resName = resName;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}

从错误消息中:isChangingConfigurationsActivity方法的名称。Firebase 无法序列化活动对象。您应该删除此部分:

extends AppCompatActivity

并且不要忘记删除导入import android.support.v7.app.AppCompatActivity;

我遇到了同样的问题 我有一个在 Acivity 中声明的类,所以我将该类的声明从 acivity 更改为包级别,错误消失了

删除 AppCompatActivity,它将不起作用代码的某些部分,例如, findViewById.

最新更新