Firebase
にいくつかの画像を保存しましたが、ダウンロードしようとしているときにエラーが発生しています:E/StorageException: StorageException has occurred. User does not have permission to access this object. Code: -13021 HttpResult: 403
私もGoogle認証を使用しています。ここでルールをパブリックとして設定しても、 'StorageException'が発生します。詳細を参照してください
は、私は、画像をアップロードしています方法は次のとおりです。
StorageReference storageReference = firebaseStorage.getReferenceFromUrl("gs://appname-e2a32.appspot.com").child("hImage");
UploadTask uploadTask = storageReference.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(getBaseContext(), exception.getMessage(), Toast.LENGTH_SHORT).show();
// Handle unsuccessful uploads
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
Uri downloadUrl = taskSnapshot.getDownloadUrl();
savingHelpRequest.dismiss();
Toast.makeText(getBaseContext(), "image uploaded", Toast.LENGTH_SHORT).show();
}
});
は、ここで私はそれをダウンロードしようとしている方法は次のとおりです。
FirebaseStorage firebaseStorage = FirebaseStorage.getInstance();
storageReference = firebaseStorage.getReferenceFromUrl("gs://appname-e2a32.appspot.com").child("hImage");
storageReference.getBytes(Long.MAX_VALUE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
@Override
public void onSuccess(byte[] bytes) {
// Use the bytes to display the image
ByteArrayOutputStream baoStream = new ByteArrayOutputStream();
bytes = baoStream.toByteArray();
bmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
Toast.makeText(getBaseContext(), exception.getMessage(), Toast.LENGTH_LONG).show();
}
});
は、ここでセキュリティルールです:
service firebase.storage {
match /b/appname-e2a32.appspot.com/o {
match /{allPaths=**} {
allow read, write;
}
}
}
私に知らせてくださいこのエラーを取り除き、イメージを正常にダウンロードするにはどうすればよいですか?
Firebase認証を使用しているか、認証されていないアクセスを許可するようにデフォルトのストレージセキュリティルールを変更していますか? –
セキュリティルールの編集された質問を参照してください。はい私はGoogle認証を使用しています。 –
あなたは6.0に対してコンパイルしていますか? –