【问题标题】:.getDownloadUrl() (Not Working Properly "Android Studio" ) [duplicate].getDownloadUrl() (无法正常工作“Android Studio”)[重复]
【发布时间】:2019-02-13 12:17:15
【问题描述】:

.getDownloadUrl() 方法不起作用,下面出现红线。

我已经使用 android studio 几个月了,一个月前我开始了一个项目,在我的项目中遇到了这个错误。 是什么原因以及我该如何解决? 请帮帮我...

这是错误:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == GALLERY_PICK && resultCode == RESULT_OK){

        Uri imageUri = data.getData();

        final String current_user_ref = "messages/" + mCurrentUserId + "/" + mChatUser;
        final String chat_user_ref = "messages/" + mChatUser + "/" + mCurrentUserId;

        DatabaseReference user_message_push = mRootRef.child("messages")
                .child(mCurrentUserId).child(mChatUser).push();

        final String push_id = user_message_push.getKey();


        StorageReference filepath = mImageStorage.child("message_images").child( push_id + ".jpg");

        filepath.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {

                if(task.isSuccessful()){
              // this code is not working (.getDownloadUrl)..

                    String download_url = task.getResult().getDownloadUrl().toString();


                    Map messageMap = new HashMap();
                    messageMap.put("message", download_url);
                    messageMap.put("seen", false);
                    messageMap.put("type", "image");
                    messageMap.put("time", ServerValue.TIMESTAMP);
                    messageMap.put("from", mCurrentUserId);

                    Map messageUserMap = new HashMap();
                    messageUserMap.put(current_user_ref + "/" + push_id, messageMap);
                    messageUserMap.put(chat_user_ref + "/" + push_id, messageMap);

                    mChatMessageView.setText("");

                    mRootRef.updateChildren(messageUserMap, new DatabaseReference.CompletionListener() {
                        @Override
                        public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {

                            if(databaseError != null){

                                Log.d("CHAT_LOG", databaseError.getMessage().toString());

                            }

                        }
                    });


                }

            }
        });

    }

}

【问题讨论】:

  • 请修改您的帖子,我们可以理解。

标签: android firebase firebase-storage


【解决方案1】:
storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {

    }
});

这个方法可以工作你已经定义了 storageReference 对象

【讨论】:

  • 它不工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
相关资源
最近更新 更多