我无法上载firebase存储上的配置文件图像。我正在把烤面包片上的错误打印出来。为什么会出现这种情况?我无法解决这个问题,我审查了我的代码很多次。问题可能是什么?我如何调整我的代码以使其正常工作?提前向大家表示感谢。
public class ProfiloUtenteActivity extends AppCompatActivity {
private ImageView mImageBtn;
private ImageView mSettingsBtn, mPersonalReviewsBtn, mShowFriendsBtn;
private CircleImageView mProfileImage;
private TextView mMailAcc, mUsernameAcc;
private static final int GALLERY_PICK = 1;
private DatabaseReference mUserDatabase;
private FirebaseUser mCurrentUser;
private ProgressDialog mProgress;
private StorageReference mImageStorage;
private String myUri = "";
private Uri imageUri;
FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profilo_utente);
mShowFriendsBtn = findViewById(R.id.imageShowFriends);
mPersonalReviewsBtn = findViewById(R.id.imagePersonalReviews);
mSettingsBtn = (ImageView) findViewById(R.id.imageViewSettings);
mImageBtn = (ImageView) findViewById(R.id.change_image_btn);
mProfileImage = (CircleImageView) findViewById(R.id.profile_image);
mMailAcc = (TextView) findViewById(R.id.textViewMailAcc);
mUsernameAcc = (TextView) findViewById(R.id.textView7);
auth = FirebaseAuth.getInstance();
mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
String current_uid = mCurrentUser.getUid();
mUserDatabase = FirebaseDatabase.getInstance().getReference().child("utenti").child(current_uid);
mImageStorage = FirebaseStorage.getInstance().getReference();
mImageBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent();
galleryIntent.setType("image/*");
galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(galleryIntent, "Seleziona una foto"), GALLERY_PICK);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == GALLERY_PICK && resultCode == RESULT_OK) {
imageUri = data.getData();
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1, 1)
.start(this);
}
if(requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
Uri resultUri = result.getUri();
StorageReference filepath = mImageStorage.child("profile_images").child("1wq");
filepath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if(task.isSuccessful()) {
Toast.makeText(ProfiloUtenteActivity.this, "Funziona", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ProfiloUtenteActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
}
});
}
}
}
当task
失败时,它包含一个异常,该异常包含有关失败的更多信息。允许您找出问题原因的日志记录:
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if(task.isSuccessful()) {
Toast.makeText(ProfiloUtenteActivity.this, "Funziona", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ProfiloUtenteActivity.this, "Error", Toast.LENGTH_SHORT).show();
Log.e("Upload", "Upload failed", task.getException());
}
}
一旦您收到错误消息,我建议您搜索它,因为很可能有人以前处理过它。