如何实时使用firebase获取上传文件的链接?

时间:2016-07-08 11:37:07

标签: android firebase firebase-storage

我正在使用firebase存储来上传文件。代码是:

StorageReference storageRef = storage.getReferenceFromUrl("gs://fir-896a6.appspot.com");

final Uri selectedFile = data.getData();

StorageReference uploadRef = storageRef.child(selectedFile.getLastPathSegment());
UploadTask uploadTask = uploadRef.putFile(selectedFile);

uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                  Log.i("Success", "uploaded");
                }

}

成功上传文件。现在,当上传完成时,我想要两个指向该文件的链接(例如https://firebasestorage.googleapis.com/v0/b/fir-896a6.appspot.com/o/17992?alt=media&token=68bd978a-4def-40d8-8edb-6526a15a94e3 和 gs://fir-896a6.appspot.com/17992)实时(可能在onSuccessListener上)

1 个答案:

答案 0 :(得分:0)

我博客中的简单代码段:Firebase Storage

...
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    hideProgressDialog();
                    Uri downloadUrl = taskSnapshot.getDownloadUrl();
                    Log.d("MainActivity", downloadUrl.toString());
                    showAlertDialog(MainActivity.this, "Upload Complete", downloadUrl.toString(), new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            findViewById(R.id.button_step_3).setEnabled(false);
                            findViewById(R.id.button_step_4).setEnabled(true);
                        }
                    });

                    Glide.with(MainActivity.this)
                            .load(downloadUrl)
                            .into(mImageView);
                }
            })
...