ImageViewで画像を表示したいのですが、これは私がやっていることです。FirebaseUIを使用してFireBase Storageの画像を表示しています。
FirebaseStorage storageDisplayImg;
StorageReference storageRef;
private FirebaseAuth auth;
storageDisplayImg=FirebaseStorage.getInstance();
auth = FirebaseAuth.getInstance();
FirebaseUser userConnect = auth.getCurrentUser();
String id_user=userConnect.getUid();
storageRef = storageDisplayImg.getReference().child(item.getChemin_image()); // return gs://mydreambook-32321.appspot.com/images/test23-03-2017_16:46:55
if (item.getChemin_image() != null&&id_user != null) {
Glide.with(convertView.getContext() )
.using(new FirebaseImageLoader())
.load(storageRef)
.into(profilePic);
profilePic.setVisibility(View.VISIBLE);
} else {
profilePic.setVisibility(View.GONE);
}
しかし、私はこのエラーがあります:
StorageException has occurred. Object does not exist at location. Code: -13010 HttpResult: 404
更新、ストレージFireBase内のイメージ
私は現在同じ問題を抱えていて、ストレージ内の画像が.jpgで終わっていることに気付きましたが、コードは.pngで終わるアドレスを要求しています。それを修正した後、それは完璧に動作しました。
こんにちは私は二日前にそのような問題に直面しました。ストレージ例外は、Firebaseの起動前にGoogle開発者コンソールで作成したプロジェクトに対して通常発生します。そのため、アプリをFirebaseの既存のプロジェクトに接続すると、機能しました。プロジェクトがストレージを受け入れるかどうかを確認するには、Firebaseコンソールに移動します。ファイルのアップロードオプションが表示されている場合は、左クリックでストレージをクリックすると、プロジェクトでストレージを使用できます。
あなたは単にグライドメソッドを使用して2つの方法で画像を表示することができます。以下のメソッドにアクセスする場合は、Firebase Storageルールを変更する必要があります。ここに私のルールを含めました。
service firebase.storage {
match /b/project-id.appspot.com/o {
match /{allPaths=**} {
allow write: if request.auth != null;
}
}
}
OR allow write:ture;
方法1.単にFirebaseリファレンスを使用する
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReferenceFromUrl("gs://your-id.appspot.com");
StorageReference pathReference = storageRef.child("images/cross.png");
Glide.with(context)
.using(new FirebaseImageLoader())
.load(pathReference)
.into(Imageview)
方法2. Firebase URL
Glide.with(context)
.using(new FirebaseImageLoader())
.load("Firebase_ImageURL")
.into(Imageview)
同様の問題がありました。大文字と小文字が間違っているファイルを削除しようとしました
例:file_of_user_uidabcde.png
を検索してfile_of_user_uIdAbCdE.png
を削除する