实时数据库不会保存ArrayList

时间:2019-05-26 00:42:58

标签: android firebase firebase-realtime-database

我有一个连接到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())
            }
        }

我该怎么做才能使我的类正常工作或如何将数组保存到数据库中?

0 个答案:

没有答案