Description
Operating System
iOS 18.1
Environment (if applicable)
React Native
Firebase SDK Version
11.0.2
Firebase SDK Product(s)
Storage
Project Tooling
Expo "managed"
Detailed Problem Description
Our app uses the following Firebase API to upload files to Firebase Storage:
const json = '{ "string contents": "of file" }';
await uploadString(ref(getStorage(), `path/to/file.ext`), json);
This worked great for ages, when we were using React Native 0.73 or lower.
Now we are in the process of migrating to React Native 0.76.2, and we are getting the following error:
Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported
We tried also other formats: instead of submitting the string as a "raw" string, we used Base-64 and other formats, but the problem stays the same.
The reason can be found at line 70 of BlobManager.js
:
This was introduced in the following React Native commit:
There is an obvious workaround, but when I tried it, the app crashed with a native crash. Not sure if related. But if anyone encounters this problem, maybe this workaround is worth a try:
const blob = new Blob([json], {
type: "application/json",
});
await uploadBytes(ref(getStorage(), `path/to/file`), blob);
Steps and code to reproduce issue
In a React Native 0.76 app, upload a string to Firebase Storage, using uploadString
:
const json = '{ "string contents": "of file" }';
await uploadString(ref(getStorage(), `path/to/file.ext`), json);