Не удается разрешить метод getDownloadUrl - PullRequest
0 голосов
/ 10 февраля 2019

Я новичок в Android Studio.У меня проблема с кодом, и я не знаю, что это такое, так как я следую руководству YouTube по созданию пользователя в Android плюс Firebase.Проблема в хранении на Firebase.

Мой код:

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);
    }

}

1 Ответ

0 голосов
/ 11 февраля 2019

Этот метод устарел.Используйте параметр storageReference для получения URL-адреса для загрузки.

.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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...