为了账号安全,请及时绑定邮箱和手机立即绑定

String downloadThumbUri = uploadTask.getResult()

String downloadThumbUri = uploadTask.getResult()

子衿沉夜 2023-07-28 15:11:29
如何获取下载URI?String downloadThumbUri = uploadTask.getResult().getStorage().getDownloadUrl().toString();不管用。我正在使用位图来压缩图像以将其用作缩略图。这是代码:ByteArrayOutputStream baos = new ByteArrayOutputStream();compressedImageFile.compress(Bitmap.CompressFormat.JPEG, 100, baos);byte[] thumbData = baos.toByteArray();final UploadTask uploadTask = storageReference.child("post_images/thumbs").child(randomName + ".jpg").putBytes(thumbData);uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {    @Override    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {        //Toast.makeText(NewPostActivity.this,"Thumbnail was uploaded ",Toast.LENGTH_LONG).show();        String downloadThumbUri = uploadTask.getResult().getStorage().getDownloadUrl().toString();        Map<String,Object> postMap = new HashMap<>();        postMap.put("image url",downloadUri);        postMap.put("thumb",downloadThumbUri);        postMap.put("desc",desc);        postMap.put("user_id",current_user_id);        postMap.put("timestamp",FieldValue.serverTimestamp());        firebaseFirestore.collection("Posts").add(postMap).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {            @Override            public void onComplete(@NonNull Task<DocumentReference> task) {                if(task.isSuccessful()){                    newPostProgress.setVisibility(View.INVISIBLE);                    Toast.makeText(NewPostActivity.this,"Post was added ",Toast.LENGTH_LONG).show();                    Intent mainIntent = new Intent(NewPostActivity.this,MainActivity.class);                    startActivity(mainIntent);                    finish();                }            }        })    }}
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

使用以下代码获取下载 uri 并存储在 Firestore 中。把它放在onSucess里面


uploadTask.getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {

                @Override

                public void onComplete(@NonNull Task<Uri> task) {

                    String downloadThumbUri = task.getResult().toString();

                    Map<String,Object> postMap = new HashMap<>();

                    postMap.put("image url",downloadUri);

                    postMap.put("thumb",downloadThumbUri);

                    postMap.put("desc",desc);

                    postMap.put("user_id",current_user_id);

                    postMap.put("timestamp",FieldValue.serverTimestamp());


                    firebaseFirestore.collection("Posts").add(postMap).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {

                        @Override

                        public void onComplete(@NonNull Task<DocumentReference> task) {


                            if(task.isSuccessful()){


                                newPostProgress.setVisibility(View.INVISIBLE);

                                Toast.makeText(NewPostActivity.this,"Post was added ",Toast.LENGTH_LONG).show();

                                Intent mainIntent = new Intent(NewPostActivity.this,MainActivity.class);

                                startActivity(mainIntent);

                                finish();

                            }

            });

        }

    })

    .addOnFailureListener(new OnFailureListener() {

        @Override

        public void onFailure(@NonNull Exception e) {

            progressBar.setVisibility(View.GONE);

            Toast.makeText(ProfileActivity.this, "aaa "+e.getMessage(), Toast.LENGTH_SHORT).show();

        }

    });


查看完整回答
反对 回复 2023-07-28
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信