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

我正在尝试从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头。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你在使用 Android Studio 中进行开发,可以尝试在 `build.gradle` 文件中添加以下依赖项: ``` dependencies { implementation 'com.android.support:support-v4:28.0.0' implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.android.support:cardview-v7:28.0.0' implementation 'com.android.support:palette-v7:28.0.0' implementation 'com.android.support:support-vector-drawable:28.0.0' implementation 'com.android.support:animated-vector-drawable:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:support-annotations:28.0.0' implementation 'com.android.support:support-compat:28.0.0' implementation 'com.android.support:support-core-ui:28.0.0' implementation 'com.android.support:support-core-utils:28.0.0' implementation 'com.android.support:support-fragment:28.0.0' implementation 'com.android.support:multidex:1.0.3' implementation 'com.google.android.gms:play-services-ads:17.2.1' implementation 'com.squareup.picasso:picasso:2.71828' implementation 'com.jakewharton:butterknife:10.1.0' annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0' implementation 'com.github.bumptech.glide:glide:4.8.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0' implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.retrofit2:converter-gson:2.5.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1' implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.afollestad.material-dialogs:core:0.9.6.0' implementation 'com.github.siyamed:android-shape-imageview:0.9.+@aar' implementation 'com.squareup.okhttp3:okhttp:3.12.0' implementation 'com.github.chrisbanes:PhotoView:2.1.3' implementation 'com.google.android:flexbox:1.0.0' implementation 'com.android.support:mediarouter-v7:28.0.0' implementation 'com.android.support:preference-v7:28.0.0' implementation 'com.android.support:exifinterface:28.0.0' implementation 'com.google.android.gms:play-services-maps:16.0.0' implementation 'com.google.android.gms:play-services-auth:16.0.1' implementation 'com.google.android.gms:play-services-location:16.0.0' implementation 'com.google.android.gms:play-services-places:16.0.0' implementation 'com.google.android.gms:play-services-gcm:16.0.0' implementation 'com.google.android.gms:play-services-analytics:16.0.7' implementation 'com.google.android.gms:play-services-ads-identifier:16.0.0' implementation 'com.google.firebase:firebase-core:16.0.8' implementation 'com.google.firebase:firebase-ads:17.2.1' implementation 'com.firebaseui:firebase-ui-auth:4.1.0' implementation 'com.firebaseui:firebase-ui-database:4.1.0' implementation 'com.firebaseui:firebase-ui-storage:4.1.0' implementation 'com.firebaseui:firebase-ui-firestore:4.1.0' implementation 'com.firebaseui:firebase-ui:4.1.0' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9' implementation 'com.google.android.gms:play-services-vision:17.0.2' } ``` 然后,再检查你的 AndroidManifest.xml 文件是否已经声明了相机权限: ``` <uses-feature android:name="android.hardware.camera" android:required="true" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.CAMERA" /> ``` 如果还是找不到 `android.hardware:camera:2.0`,可以尝试在 SDK Manager 中更新你的 Android SDK。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值