删除firebase数据库子节点时应用程序崩溃
Posted
技术标签:
【中文标题】删除firebase数据库子节点时应用程序崩溃【英文标题】:App crashing when firebase database child node is removed 【发布时间】:2019-08-16 14:01:41 【问题描述】:我有一个名为 NewRescueRequest 的片段活动,它从数据库子节点加载值。
databaseReference.child(firebaseAuth.getUid()).addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
RequestEntries requestEntries = dataSnapshot.getValue(RequestEntries.class);
requestfirstname.setText(requestEntries.getRequestFirstName() + " " + requestEntries.getRequestLastName());
requestcontactnumber.setText(requestEntries.getRequestContactNumber());
requestlocation.setText(requestEntries.getRequestLocation());
requestlandmarks.setText(requestEntries.getRequestLandmarks());
当孩子被移动到不同的节点时,应用程序崩溃。当从节点中删除数据库子节点时,我想让它进入不同的活动。我尝试在 onCreateView 方法上使用 ValueEventListener。
databaseReference.child(firebaseAuth.getUid()).addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
if(dataSnapshot.exists())
else
setRequestFragment();
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
);
【问题讨论】:
崩溃日志在哪里,贴出来? 为什么你在第二个代码 sn-p 中检查dataSnapshot.exists()
而不是先检查它?
@M D 当孩子被移除时,它正在调用空指针异常(java.lang.NullPointerException)
@VadimEksler 我忽略了这一点,我还需要将 dataSnapshot.exist() 放在第一个上以避免崩溃。谢谢
【参考方案1】:
if(dataSnapshot.exists()) 也必须包含在第一个代码 sn-p 中。
【讨论】:
以上是关于删除firebase数据库子节点时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
删除 UITableViewCell 时更新 firebase 中的数据