android - GetDownloadUrl 返回私有(private)链接,不公开,Firebase

标签 android firebase firebase-storage

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() 返回图像的私有(private)链接(例如gs://xxx.appspot.com/images/xxx ),而不是公共(public)链接(例如https://firebasestorage.googleapis.com/v0/b/xxx.appspot.com/o/images%xxx)。

如何获取下载图片的公共(public)链接

最佳答案

正确的代码

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

关于android - GetDownloadUrl 返回私有(private)链接,不公开,Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870599/

相关文章:

java - 如何使用同步块(synchronized block)序列化异步调用

android - soong/android.bp 构建是如何工作的?

javascript - 加载页面时 Firebase auth.currentUser 为 null,页面加载几毫秒后调用 authstatechange 时加载用户

ios - iOS FirebaseCrashlytics upload_symbols和运行脚本不在FirebaseCrashlytics.framework中

ios - NotificationServiceExtension 上的 Firebase 存储配置错误

ios - 用户注册期间,Firebase将镜像上传到存储

android - 创建选项卡并显示和隐藏 Activity 内的布局

java - 适用于 Android 的 Google 自定义搜索 API,未找到类

android - TestFairy:在特定用户的 session 期间没有来自 logcat 的日志

android - 当应用程序在后台但用户没有点击收到的通知时如何处理消息