我有两个类用于上传数据,另一个用于使用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();
}
});
请有人帮我解决这个问题。