【发布时间】:2017-01-10 00:00:43
【问题描述】:
我看到很多关于从 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。是什么赋予了?
【问题讨论】:
-
鉴于
putString()是thennable,它可能还定义了一个catch(),当有错误时调用:.putString(base64String, 'base64') .then(function(snapshot) { console.log('Uploaded a base64 string!'); }).catch(function(error) { console.error(error); }); -
是的。试过了。似乎没有抛出任何错误。
-
不过,这是一个很好的观点。我在示例中添加了一个问题。即使使用它,控制台也不会记录任何内容。
-
我认为这类似于this question
-
感谢 Xeijp。这正是我的问题,是的。但同样,唯一的答案似乎是扩展 React Native 以使用 Blob,并且没有回答为什么 putString 方法(不应该需要 blob)失败的问题。
标签: javascript firebase react-native firebase-storage