无法解析方法'getDownloadUrl”

问题描述 投票:-1回答:1

我是新来的Android工作室。我有代码的一个问题,我不知道它是什么,因为我下面创建Android中加火力地堡用户的YouTube的教程。这个问题是关于火力地堡的存储。

我的代码:

public class Profile extends AppCompatActivity {
    private static final int CHOOSE_IMAGE = 101;
    EditText editText;
    ImageView imageView;
    String profileimageurl;
    Uri uriProfileImage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile2);

        editText = (EditText) findViewById(R.id.nome);
        imageView = (ImageView) findViewById(R.id.foto);

        imageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                showImageChooser();
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == CHOOSE_IMAGE && data != null && data.getData() != null) {
            uriProfileImage = data.getData();
            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uriProfileImage);
                imageView.setImageBitmap(bitmap);

                uploadImageToFirebaseStorage();

            } catch(IOException e) {
                e.printStackTrace();
            }
        }
    }

    private void uploadImageToFirebaseStorage() {
        StorageReference profileImageRef = FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");
        if (uriProfileImage != null) {
            profileImageRef.putFile(uriProfileImage)

            .addOnSuccessListener(new OnSuccessListener < UploadTask.TaskSnapshot > () {@Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    profileimageurl = taskSnapshot.getDownloadUrl().toString();

                }
            }).addOnFailureListener(new OnFailureListener() {@Override
                public void onFailure(@NonNull Exception e) {

}
            });
        }
    }

    private void showImageChooser() {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "Escohe a imagem de perfil"), CHOOSE_IMAGE);
    }

}
firebase android-studio
1个回答
1
投票

该方法已被弃用。使用storageReference获取下载网址。

.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  @Override
  public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
      profileImageRef.addOnSuccessListener(new OnSuccessListener<Uri>() {
                                @Override
                                public void onSuccess(final Uri uri) {
                                    String downloadUri = uri;
  }  })

您现在可以使用downloadUri字符串加载图像。

© www.soinside.com 2019 - 2024. All rights reserved.