我有一个连接到Firebase Realtime数据库的应用程序,当我保存一个名为user的类时,它没有保存ArrayList的变量,当我尝试调用ArrayList之一时,我注意到了这一点空。
我尝试更改为List,还尝试仅使用节点,但这太麻烦了
这是我的用户类,您可以看到它有一个ArrayList项,这是我遇到的麻烦。
public class User {
private String name;
private List<Item> items;
public User(){}
public User(String name){
this.name = name;
items = new ArrayList<>();
items.add(new Item("Item number one"));
}
public int getItemCount(){
return items.size();
}
}
这是我将其保存到实时数据库中的方式:
///当注册新用户时task.isSuccesful()时,这在signUpNewUser方法内部。
User u = new User(name);
myRef.child("Persona").child(user.getUid()).setValue(u);
当我调用类用户并将其保存到局部变量中时,没有问题,但是例如当我调用方法“ getItemCount”时,它将抛出NoPointerExceptionNull或任何其他错误。
更具体地讲,当我这样做时:
myRef.child("Persona").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
name.setText(dataSnapshot.child(UserF.getUid()).child("nombre").getValue().toString());
User u = dataSnapshot.child(UserF.getUid()).getValue(User.class);
HERE IS WHERE THE PROBLEM IS --> itemCounter.setText("The amount of items are "+u.getItemCount())
}
}
我该怎么做才能使我的类正常工作或如何将数组保存到数据库中?