图片网址在Firebase实时数据库中无效

时间:2020-03-21 03:56:00

标签: android-studio

我正在尝试将图像的网址从Firebase存储存储到实时数据库中,然后通过Picasso库加载该网址,但是该图像已存储但格式不正确,所有其他图像都在加载,但是只有一个名称为postimage的孩子无法加载,因为其网址不正确。 我只需要知道此代码对于androidx是正确的,因为我正在使用androidx。 其余的一切工作正常,此代码有问题。

将图片网址从存储设备加载到实时数据库代码:

            @Override
            public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
               if (task.isSuccessful())
               {  filePath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                   @Override
                   public void onSuccess(Uri uri) {
                       final String downloadUrl = uri.toString();
                       postImageUri = downloadUrl;
                   }

               });
                  PostImage = postImageUri;
                   // downloadUrl = task.getResult().getUploadSessionUri().toString();
//                   final String downloadUrl = filePath.getDownloadUrl().toString();
//                   postImageUri = downloadUrl;
                 // downloadUrl = task.getResult().getDownloadUrl().toString();

                   Toast.makeText(PostActivity.this, "Image Uploaded Successfully To Storage!", Toast.LENGTH_SHORT).show();
                   SavingPostInformationToDatabase( );
               }
               else
                   {
                       String message = task.getException().getMessage();
                       Toast.makeText(PostActivity.this, "Error! " + message, Toast.LENGTH_SHORT).show();
                   }
            }
        });```




1 个答案:

答案 0 :(得分:0)

我遇到了这个问题,但是后来,我解决了……你们可以看到我正在使用filePath.getDownload方法,并且在那里我通过变量postImagUri..so将图像Uri存储到实时数据库中。只要filePath.getDownload内的变量具有正确的图像链接,但到目前为止,我们在该filePath.getDownload之外使用该变量,否则会给出不适当的空值。 因此,我简单地剪切了方法SavingPostInformationToDatabase();并将其粘贴到filePath.getDownload中,导致该变量存储我在SavingPostInformationToDatabase()中使用的图像链接;方法。 SavingPostInformationToDatabase();是一种使用HashMap方法将值存储到实时数据库中的方法。