【发布时间】:2020-05-15 08:50:54
【问题描述】:
我正在尝试使用 removeValue() 从我的数据库中删除项目。当我做我的应用程序崩溃时,因为 onChange 方法中显然有一个空指针。
从数据库中删除值以防止我的应用崩溃的最佳方法是什么?
这些是我要删除的值
DatabaseReference detailref = bookingref.child("Bookings").child(customerid);
detailref.child("Housenumber").removeValue();
detailref.child("Address").removeValue();
detailref.child("Postcode").removeValue();
detailref.child("Phone").removeValue();
detailref.child("Date").removeValue();
在另一个活动中,我使用值事件监听器调用它们。
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.getChildrenCount()!=0){
house = dataSnapshot.child("Housenumber").getValue().toString();
address = dataSnapshot.child("Address").getValue().toString();
postcode = dataSnapshot.child("Postcode").getValue().toString();
phone = dataSnapshot.child("Phone").getValue().toString();
date = dataSnapshot.child("Date").getValue().toString();
这是来自我的 Logcat 的空指针错误
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at studios.p9p.h20.showroomfinish_adminapp.Booking_details$4.onDataChange
【问题讨论】:
-
如果请求的位置没有数据,
getValue()将返回 null。你需要检查一下。 -
我知道原因,但我该如何检查呢?
-
就像 Java 中的任何其他 null 检查一样。
-
我还要指出,您在标题中的问题是关于如何删除内容,但您显示的代码都没有删除任何内容。您只显示了一些查询的处理,其结果丢失。在我看来,您可能确实删除了正确的内容,而您只是想检查它们是否真的被删除了?我不清楚。
-
感谢您的帮助!
标签: java android firebase firebase-realtime-database nullpointerexception