task.getResult()。getDownloadUrl()。toString()不起作用/不被接受

时间:2020-07-13 15:28:35

标签: android firebase firebase-storage

请检查代码,我在getDownloadUrl()方法中遇到错误。因为它不被Firebase接受。我是一个初学者,所以任何人都可以建议我必须在此代码中进行的更改。

此代码段主要着眼于从存储中获取图像url并将其添加到firebase的数据库部分中。但是getDownloadUrl无法正常工作,请建议更改代码段以使其实现。

            StorageReference filePath = userProfileImagesReference.child(currentUserID + ".jpg");

            filePath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                    if(task.isSuccessful())
                    {
                        Toast.makeText(SettingsActivity.this, "Profile Image Uploaded", Toast.LENGTH_SHORT).show();

                        //error here
                        final String downloadURL = task.getResult().getDownloadUrl().toString();

                        rootRef.child("Users").child(currentUserID).child("image")
                                .setValue(downloadURL)
                                .addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task) {
                                        if(task.isSuccessful())
                                        {
                                            Toast.makeText(SettingsActivity.this, "Image Saved", Toast.LENGTH_SHORT).show();
                                            loadingBar.dismiss();
                                        }
                                        else
                                        {
                                            String errorMSG = task.getException().toString();
                                            Toast.makeText(SettingsActivity.this, "Error: "+errorMSG, Toast.LENGTH_SHORT).show();
                                        loadingBar.dismiss();
                                        }
                                    }
                                });


                    }
                    else
                    {
                        String error = task.getException().toString();
                        Toast.makeText(SettingsActivity.this, "Error: "+error, Toast.LENGTH_SHORT).show();
                        loadingBar.dismiss();
                    }
                }
            });

1 个答案:

答案 0 :(得分:0)

我想您需要直接从storageReference获取它,所以请执行以下操作:

Uri downloadUrl = filePath.getDownloadUrl();