Пожалуйста, помогите здесь (перед собеседованием)
Я пытаюсь загрузить изображение, когда оно начинает загружаться, оно вылетает
и удаляет двух основных детей (изображение, изображение большого пальца)
E / AndroidRuntime: FATAL EXCEPTION: main
Процесс: com.example.pc.newchatj, PID: 9350
java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.String java.lang.Object.toString ()' для ссылки на пустой объект
на com.example.pc.newchatj.SettingsActivity $ 1.onDataChange (SettingsActivity.java:103)
на com.google.firebase.database.core.ValueEventRegistration.fireEvent (com.google.firebase: firebase-database @@ 16.0.4: 75)
на com.google.firebase.database.core.view.DataEvent.fire (com.google.firebase: firebase-database @@ 16.0.4: 63)
на com.google.firebase.database.core.view.EventRaiser $ 1.run (com.google.firebase: firebase-database @@ 16.0.4: 55)
на android.os.Handler.handleCallback (Handler.java:739)
на android.os.Handler.dispatchMessage (Handler.java:95)
на android.os.Looper.loop (Looper.java:135)
на android.app.ActivityThread.main (ActivityThread.java:5254)
в java.lang.reflect.Method.invoke (родной метод)
в java.lang.reflect.Method.invoke (Method.java:372)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698)
И в моей базе данных Firebase он удаляет двух детей (image, thumb_image)
кто-нибудь, пожалуйста, помогите
mUserDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("name").getValue().toString();
String image = dataSnapshot.child("image").getValue().toString();
String status = dataSnapshot.child("status").getValue().toString();
String thumb_image = dataSnapshot.child("thumb_image").getValue().toString();
mName.setText(name);
mStatus.setText(status);
if (!image.equals("default")) {
Picasso.get().load(image).placeholder(R.drawable.default_avatar).into(mDisplayImage);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Я добавил StorageReference для обоих (изображение, изображение большого пальца)
filepath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
UploadTask uploadTask = thumb_filepath.putBytes(thumb_byte);
uploadTask.addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> thumb_task) {
if (thumb_task.isSuccessful()){
//getting regular image download url
filepath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
download_urll = uri.toString();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(SettingsActivity.this, "Regular fail", Toast.LENGTH_SHORT).show();
}
});
//getting thumbnail download url
thumb_filepath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri thumb_uri) {
thumb_downloadUrl = thumb_uri.toString();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(SettingsActivity.this, "thumb failed", Toast.LENGTH_SHORT).show();
}
});
Map update_hashMap = new HashMap();
update_hashMap.put("image" , download_urll);
update_hashMap.put("thumb_image" , thumb_downloadUrl);
mUserDatabase.updateChildren(update_hashMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
avi_settings.smoothToHide();
avi_settings.setVisibility(View.INVISIBLE);
Toast.makeText(SettingsActivity.this, "Successfully uploaded", Toast.LENGTH_SHORT).show();
}
}
});
}
}
});
Toast.makeText(SettingsActivity.this, "working", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(SettingsActivity.this, "Error uploading file", Toast.LENGTH_SHORT).show();
avi_settings.smoothToHide();
avi_settings.setVisibility(View.INVISIBLE);
}
}
});