0

Actual demo video: https://www.youtube.com/watch?v=bYGi71am_tU

Firebase Storage RULES:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

enter image description here

My blob image:

Blob {
   "_data": Object {
     "blobId": "c526586a-0481-48ce-a77b-cc589052a443",
     "lastModified": 0,
     "name": "bbf91dba-8597-43d9-82b7-7a81887c3e5c.jpg",
     "offset": 0,
     "size": 32653,
     "type": "image/jpeg",
   },
}

Firebase Storage error :

FirebaseStorageError {
   "code_": "storage/unknown",
   "column": 31,
   "line": 17422,
   "message_": "Firebase Storage: An unknown error occurred, please check the error payload for server response.",
   "name_": "FirebaseError",
   "serverResponse_": "{
   \"error\": {
     \"code\": 400,
     \"message\": \"Permission denied. Could not access bucket crna-app-01.appspot.com. Please enable Firebase Storage for your bucket by visiting the Storage tab in the Firebase Console and ensure that you have sufficient permission to properly provision resources.\"
   }
 }",
   "sourceURL": "http://10.1.0.6:19001/node_modules/expo/AppEntry.bundle?platform=android&dev=true&minify=false&hot=false&assetPlugin=%2FUsers%2Fajinkyaborade%2Fprojects%2Fnative-apps%2Fmy-react-redux%2Fnode_modules%2Fexpo%2Ftools%2FhashAssetFiles",
 }

And this is the actual function from my Expo RN app file

async function uploadImageAsync(uri, uid, firebase) {

  const response = await fetch(uri);

  const blob = await response.blob();

  const ref = firebase
    .storage()
    .ref('users/' + uid)
    .child(uuid.v4());

  const snapshot = await ref.put(blob); // actual Firebase error comes here
  return snapshot.downloadURL;
}

Any help is much appreciated :)

STEEL
  • 8,955
  • 9
  • 67
  • 89
  • This is the Firebase Storage error message from above: "Permission denied. Could not access bucket crna-app-01.appspot.com. Please enable Firebase Storage for your bucket by visiting the Storage tab in the Firebase Console and ensure that you have sufficient permission to properly provision resources." Is this message meaningful or actionable for you? – Doug Stevenson May 14 '18 at 06:00
  • @DougStevenson thanks for reply. I had previously uploaded files using same method, but suddenly it stopped working. Yes Storage is enabled. I have even added `RULES` – STEEL May 14 '18 at 06:01
  • Please help us understand "suddenly". Please edit the question to include what was working before that is no longer working *with no changes to what you're posted". – Doug Stevenson May 14 '18 at 06:03
  • updated question @DougStevenson – STEEL May 14 '18 at 06:09
  • I tried with RULES `allow write;` still same issue – STEEL May 14 '18 at 08:55

1 Answers1

0

This was an issue with Firebase storage admin.

-- add firebase-storage@system.gserviceaccount.com as Storage ADMIN done

STEEL
  • 8,955
  • 9
  • 67
  • 89
  • many thanks to https://stackoverflow.com/questions/50292353/firebase-storage-security-rules-400-error-issue-permission-denied-could-not-ac – STEEL May 14 '18 at 09:20