Reputation: 1
Hello im currently building an app using firebase database, im facing an error and i dont know howw to solve this, its say it cant get pass the child key
public FirebaseDatabaseHelper() {
mDataPelanggan = FirebaseDatabase.getInstance();
mReferencePelanggan = mDataPelanggan.getReference("datapelanggan");
}
public void readPelanggan(final DataStatus dataStatus){
mReferencePelanggan.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
pelanggans.clear();
List<String> keys = new ArrayList<>();
for(DataSnapshot keyNode : dataSnapshot.getChildren()){
keys.add(keyNode.getKey());
Pelanggan pelanggan = keyNode.getValue(Pelanggan.class);
pelanggans.add(pelanggan);
}
dataStatus.DataIsLoaded(pelanggans,keys);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
public void addPelanggan(Pelanggan pelanggan, final DataStatus dataStatus){
String key = mReferencePelanggan.push().getKey();
mReferencePelanggan.child(key).setValue(pelanggan)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
dataStatus.DataIsInserted();
}
});
}
public void updatePelanggan(String key, Pelanggan pelanggan, final DataStatus dataStatus){
mReferencePelanggan.child(key).setValue(pelanggan)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
dataStatus.DataIsUpdated();
}
});
}
public void deletePelanggan(String key, final DataStatus dataStatus){
mReferencePelanggan.child(key).setValue(null)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
dataStatus.DataIsDeleted();
}
});
}
here is the error im facing
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.myapplication, PID: 6839 java.lang.NullPointerException: Can't pass null for argument 'pathString' in child() at com.google.firebase.database.DatabaseReference.child(DatabaseReference.java:96) at com.example.myapplication.FirebaseDatabaseHelper.updatePelanggan(FirebaseDatabaseHelper.java:73) at com.example.myapplication.PelangganDetail$1.onClick(PelangganDetail.java:71) at android.view.View.performClick(View.java:6605) at android.view.View.performClickInternal(View.java:6582) at android.view.View.access$3100(View.java:778) at android.view.View$PerformClick.run(View.java:25897) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6692) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
line 71 which lead to "mReferencePelanggan.child(key).setValue(pelanggan)"
Upvotes: 0
Views: 279
Reputation: 317562
The error messages is telling you that the key
you're passing to child()
is null in the method updatePelanggan
. You're going to have to do some debugging to figure out why that is. You're not showing the call to updatePelanggan
, so it's not possible to see here where exactly that null value is coming from.
Upvotes: 0