1

にいくつかの画像を保存Firebaseしましたが、それらをダウンロードしようとすると、次のエラーが発生します: E/StorageException: StorageException has occurred. User does not have permission to access this object. Code: -13021 HttpResult: 403. 私もGoogle認証を使用しています。

画像をアップロードする方法は次のとおりです。

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;
    }
 }
}

このエラーを取り除き、画像を正常にダウンロードする方法を教えてください。

4

1 に答える 1