GetDownloadUrl возвращает приватную ссылку, не публичную, Firebase - PullRequest
0 голосов
/ 18 октября 2018
private void uploadImage() {
   final ProgressDialog progressDialog = new ProgressDialog(this);
   progressDialog.setTitle("Загрузка...");
   progressDialog.show();
   final StorageReference ref = storageReference.child(avatarUrl);
   ref.putFile(Uri.parse(Settings.uriImage))
                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                            progressDialog.dismiss();
                            Toast.makeText(Settings.this, "Фото профиля подключено", Toast.LENGTH_SHORT).show();
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            progressDialog.dismiss();
                            Toast.makeText(Settings.this, "Ошибка " + e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    })
                    .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                            double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot
                                    .getTotalByteCount());
                            progressDialog.setMessage("Прогресс " + (int) progress + "%");
                        }
                    });
        avatarUrlFinal = avatarUrl;
    }
    private void gettingImage () {
        StorageReference islandRef = storageReference.child(avatarUrlFinal);
        Uri test = islandRef.getDownloadUrl().getResult();

А теперь islandRef.getDownloadUrl (). GetResult () возвращает мне приватную ссылку изображения (например, gs://xxx.appspot.com/images/xxx), а не публичную ссылку (например,https://firebasestorage.googleapis.com/v0/b/xxx.appspot.com/o/images%xxx).

Как получить Публичную ссылку загруженного изображения?

1 Ответ

0 голосов
/ 18 октября 2018

Правильный код

StorageReference islandRef = storageReference.child(avatarUrlFinal);
        islandRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                String test = uri.toString();
                Toast.makeText(Settings.this, test, Toast.LENGTH_SHORT).show();
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(Settings.this, "Ошибка", Toast.LENGTH_SHORT).show();
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...