【发布时间】:2017-06-17 01:53:13
【问题描述】:
我正在尝试使用下面的代码在我的代码中构建替换个人资料图片功能。有时它工作正常。其他时候,在我从我的画廊(一些图片)中选择图片后没有任何反应。它显示的选择图片来自在我选择要上传的图像后,画廊活动就崩溃了,并且应用程序只是在 logcat 中终止而没有任何错误。在我添加进度对话框之前它曾经正常工作
private void postImage() {
String path = "userProfiles/" + UUID.randomUUID() + ".jpeg";
StorageReference userProfilesRef = storage.getReference(path);
userProfilesRef.putFile(resultUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
downloadUrls = taskSnapshot.getDownloadUrl().toString();
Toast.makeText(getApplicationContext(), "File Uploaded ", Toast.LENGTH_LONG).show();
mProgressDialog.dismiss();
final String id = firebaseAuth.getCurrentUser().getUid();
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child("Male").hasChild(id)){
databaseReference.child("Male").child(id).child("downloadUrl").setValue(downloadUrls);
databaseReference1.child("Male").child(key).child("downloadUrl").setValue(downloadUrls);
}
else {
databaseReference.child("Female").child(id).child("downloadUrl").setValue(downloadUrls);
databaseReference1.child("Female").child(key).child("downloadUrl").setValue(downloadUrls);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Toast.makeText(getApplicationContext(), " Uploaded ", Toast.LENGTH_LONG).show();
}
});
}
});
/* userProfilesRef.putFile(filePath).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(), " Upload Failed, Please try again ", Toast.LENGTH_LONG).show();
//progressDialog.dismiss();
}
});*/
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
filePath = data.getData();
CropImage.activity(filePath)
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1, 1)
.start(this);
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
mProgressDialog.setMessage("Uploading Please Wait...");
mProgressDialog.show();
resultUri = result.getUri();
postImage();
image.setImageURI(resultUri);
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}
【问题讨论】:
-
如果你有一个 logcat 和一个 minimal reproducible example,我会帮你的
-
请我编辑我的代码@cricket_007
-
我没有看到任何代码编辑,只有文本。如果没有 logcat,我会感到惊讶,但
onCancelled是空的,Exception error永远不会被打印出来。尝试自己添加更多Log.d语句以查看代码中断的位置。
标签: android firebase firebase-storage