【问题标题】:Retrieving images from Firebase does not work?从 Firebase 检索图像不起作用?
【发布时间】:2018-09-02 10:39:29
【问题描述】:

从 Firebase 检索图像不起作用? 嗨,我正在从 Firebase 上传和检索图像。 但taskSnapshot.getDownlaodUrl 目前已被弃用。 所以我使用这个问题中回答的替代方法

taskSnapshot.getDownloadUrl() is deprecated

但这些替代方案都不适合我。

 @Override
    public void onActivityResult( int requestCode,int resultcode,Intent data) {
      super.onActivityResult(requestCode,resultcode,data);
        if(requestCode==GALLERY_INTENT&&resultcode==RESULT_OK)
        {  mbar.setVisibility(View.VISIBLE);
            Uri uri=data.getData();
       final   StorageReference fileupload=mStorage.child("Photos").child(uri.getLastPathSegment());
       fileupload.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>(){
            @Override
             public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
              mbar.setVisibility(View.GONE);
                Toast.makeText(MainActivity.this,"Succesfully Uploaded",Toast.LENGTH_SHORT).show();
                Task<Uri> firebaseUri = taskSnapshot.getStorage().getDownloadUrl();
                Picasso.get().load(firebaseUri.getResult.toString()).into(image);

            }
                }
       );

这是我上传和检索数据的代码。

它给了我任务尚未完成的错误

当我尝试另一种选择时

filepath.getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
                            @Override
                            public void onComplete(@NonNull Task<Uri> task) {
                                String downloadUrl = task.getResult().toString();
                              Picasso.get().load(downloadUrl).into(image);
                             }
 });

它给了我对象不退出的错误 我正在为照片制作儿童参考并尝试检索图像。 谁能解决这段代码中的问题。

【问题讨论】:

    标签: android firebase firebase-storage


    【解决方案1】:
    final   StorageReference fileupload=mStorage.child("Photos").child(uri.getLastPathSegment());
    UploadTask uploadTask = fileupload.putFile(file);
    
    Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
        @Override
        public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
            if (!task.isSuccessful()) {
                throw task.getException();
            }
            return ref.getDownloadUrl();
    
        }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {
                if (task.isSuccessful()) {
                    Uri downloadUri = task.getResult();
                    Picasso.get().load(downloadUri.toString()).into(image);
    
                } else {
                     // Handle failures
                }
           }
    });
    

    【讨论】:

    • 在 throw 语句后缺少 rerun 语句
    • 谢谢它对我有用。我之前尝试过相同的代码,但我认为检索图像需要时间,我认为它不是检索。你能通过勾选勾选来为我做同样的事情吗问题的左侧。
    • 你可以给星,这样我就可以获得我的学生证。
    猜你喜欢
    • 1970-01-01
    • 2019-02-26
    • 2020-07-19
    • 2016-02-12
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 2020-08-05
    相关资源
    最近更新 更多