android网络差导致的图片上传失败,android firebase上传图片错误的url(问题:x-goog-upload-comment头丢失)...

在Android应用中,用户遇到Firebase数据库保存图片URL时出现异常问题。上传到Firebase Storage的图片URL在数据库中保存不正常,导致无法通过URL下载图片。问题可能在于上传过程或URL处理。代码显示了使用Firebase Storage和Database进行上传和下载的片段,以及使用Picasso库显示图像。错误提示指出URL缺少x-goog-upload-command头,这可能影响了下载过程。解决办法需要检查上传过程中URL的生成和存储方式,确保其正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试从FiraBase数据库上传和下载图片,该数据库有一个到FireBase存储的URL链接。问题是奇怪的URL正在保存到数据库中(请参见底部的链接)。我应该怎么做才能获得一个正常的网址,我将可以使用做下载和图像到我的Android应用程序?提前谢谢!

这里我发布了一些我使用的代码:

上传到FireBase数据库和存储:

mStorageRef = FirebaseStorage.getInstance().getReference();

mDataBaseRef = FirebaseDatabase.getInstance().getReference();

if (mImageUri != null)

{

final StorageReference fileReference = mStorageRef.child(nameimage + "." + getFileExtension(mImageUri));

fileReference.putFile(mImageUri).addOnSuccessListener(new OnSuccessListener() {

@Override

public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

Toast.makeText(AddAdvertisement.this, "Upload successful!", Toast.LENGTH_LONG).show();

Upload upload = new Upload(et_localization, taskSnapshot.getUploadSessionUri().toString());

String uploadId = mDataBaseRef.push().getKey();

mDataBaseRef.child(uploadId).setValue(upload);

}

}).addOnFailureListener(new OnFailureListener() {

@Override

public void onFailure(@NonNull Exception e) {

Toast.makeText(AddAdvertisement.this, e.getMessage(), Toast.LENGTH_SHORT).show();

}

});

从FireBase下载:

databaseReference = FirebaseDatabase.getInstance().getReference();

databaseReference.addValueEventListener(new ValueEventListener() {

@Override

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

for (DataSnapshot postSnapshot : dataSnapshot.getChildren())

{

Upload upload = postSnapshot.getValue(Upload.class);

mUploads.add(upload);

}

mAdapter = new AdverisementAdapter(getContext(),mUploads);

mrecyclerView.setAdapter(mAdapter);

}

和毕加索检索图像:

@Override

public void onBindViewHolder(@NonNull ImageViewHolder imageViewHolder, int i) {

Upload uploadCurrent = mUploads.get(i);

imageViewHolder.textViewName.setText(uploadCurrent.getName());

Picasso.get().load(uploadCurrent.getUrl()).into(imageViewHolder.imageView);

}

毕加索的作品很好,因为除了形成一个图像,我也从firebase字符串中得到了名字,这是适当的下载。所以,我认为问题出在这个错误的网址上:

当我尝试进入此链接时,我收到此类错误:

无效请求。缺少x-goog-upload-command头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值