我看到很多关于从 React Native 上传到 Firebase 存储的讨论,但似乎都是如何绕过 React Native 不支持 Blob 或文件的事实。但是Firebase有一个putString
方法来上传base64编码的文件。
例如,为什么这段代码可以在浏览器中运行,但不能在 React Native 中运行:
var base64String = "iVBORw0KGgoAAAA...";
firebase
.storage()
.ref()
.child(`test/test.png`)
.putString(base64String, 'base64')
.then(function(snapshot) {
console.log('Uploaded a base64 string!');
})
.catch(function(err) {
console.log('Problems', err);
});
React Native 中没有给出错误,但 Firebase 中没有文件到达。是什么赋予了?
最佳答案
这里是 Firebase Storage JS 开发人员。
需要明确的是,截至撰写本文时(2016 年 9 月 2 日)React Native 不支持 Firebase 存储上传。
要回答您关于为什么上传可以在浏览器中工作但不能在 React Native 中工作的问题:我们的 putString() 方法不需要 Blob 支持,但如果您传入 base64 字符串,我们的库仍然支持能够以某种方式发送二进制数据。
在现代浏览器中,您可以将二进制数据存储在 ArrayBuffer 中并将其作为 XMLHttpRequest 或 Fetch 请求的正文发送 - 在 React Native 中则不然。
据我们所知,React Native 核心库目前没有提供一种将内存中的二进制数据作为 HTTP 请求正文发送的好方法。
关于javascript - 从 React Native 上传到 Firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282752/