我的应用在RecyclerView
一些不同的firebase孩子及其值中显示。
我在应用程序上创建了一个方法,它可以删除一个子项,但是在我删除了一个firebase子项之后,它在我的应用程序崩溃之前在片段上的RecyclerView上显示,因为它无法在RecyclerView上找到子项名称和值(很明显,因为我刚删除了它们)
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at world.cryneo.partytime.java.RequestsFragment$2$1.onDataChange(RequestsFragment.java:108)
这里没有得到儿童的价值观,因为孩子们被删除了。
final String eventName = dataSnapshot.child("Name").getValue().toString();
在块onCreateView
中,我告诉数据库保持同步。我认为这会解决它,但问题仍然存在。
mEventsDatabase.keepSynced(true);
那么如何告诉firebase和Recycler View我刚刚删除了一个子节点及其值,并且不应该通过下载不存在的数据来崩溃?
这是我让孩子们离开火场的方式:
mEventsDatabase.child(list_event_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final String eventName = dataSnapshot.child("Name").getValue().toString();
...
答案 0 :(得分:1)
您是否尝试过检查快照是否存在?
mEventsDatabase.child(list_event_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// ADD THIS
if (!dataSnapshot.exists()) {
return;
}
final String eventName = dataSnapshot.child("Name").getValue().toString();