Android Firebase - 在向firebase数据库添加数据后,在addChildEvevntListener中获取null值

时间:2017-10-01 08:26:36

标签: java android firebase

我有两个类用于上传数据,另一个用于使用firebase中的addChildEventListener检索数据。我的问题是当我上传数据时,它正确存储在数据库中。但是只要我上传我的数据,我的childEventListener就会抛出空值。但是当我手动将数据添加到firebase数据库(网站)时,我正确地得到了。

这是我的上传课程

   Firebase mref = new Firebase("https://social-a92cf.firebaseio.com/user");

 Firebase create;
       //name
       create = mref.child(user+"_" + key_id).child("firstname");
       create.setValue(profile_Name);

       //date
       create = mref.child(user+"_" + key_id).child("date");
       create.setValue(date);

       //place
       create = mref.child(user+"_" + key_id).child("place");
       create.setValue(place);

      //description
        create=mref.child(user+"_"+key_id).child("description");
        create.setValue(description);

        //imageurl
       create = mref.child(user+"_" + key_id).child("url");
       create.setValue(IMG_URL);
       Toast.makeText(getApplicationContext(), "Uploaded",Toast.LENGTH_LONG).show();

我的addChildEventListener

mref.addChildEventListener(new ChildEventListener() {


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

            if(flag==1) {

                ContactInfo ci = new ContactInfo();

                if(dataSnapshot.child("url").getValue()!=null && dataSnapshot.child("firstname").getValue()!=null && dataSnapshot.child("description").getValue()!=null && dataSnapshot.child("place").getValue()!=null && dataSnapshot.child("date").getValue()!=null) {


                    ci.displayName = dataSnapshot.child("firstname").getValue().toString();
                    ci.displayDate = dataSnapshot.child("date").getValue().toString();
                    ci.description = dataSnapshot.child("description").getValue().toString();
                    ci.displayPlace = dataSnapshot.child("place").getValue().toString();
                    ci.imgUrl = dataSnapshot.child("url").getValue().toString();
                    list.add(ci);
                    ca.notifyDataSetChanged();
                    recList.smoothScrollToPosition(ca.getItemCount());

                }
            }

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

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

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

        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {
            Toast.makeText(getApplicationContext(),"Problem in loading feeds",Toast.LENGTH_LONG).show();
        }


    });

请有人帮我解决这个问题。

0 个答案:

没有答案