jan*_*tak 2 upload firebase react-native firebase-storage
我设立这个线程,以便澄清,火力存储是否putString方法做或不工作,作出反应母语.
根据我搜索的内容,目前无法使用put方法将文件或Blob类型上传到Firebase存储.
React Native不支持文件和Blob类型,因此Firebase存储上载在此环境中不起作用.但文件下载确实有用.
消息来源:Firebase博客
因此这个电话
firebase.storage().ref()
.child(userID)
.put(new File(['this is a small amount of data'], 'sample-text.txt', { type: "text/plain" }), { type: "text/plain" })
.then(p => {console.log(p)})
.catch(p => {console.log(p)})
Run Code Online (Sandbox Code Playgroud)
不起作用,最终得到回应
代码:"存储/未知"消息:"Firebase存储:发生未知错误,请检查错误有效负载以获取服务器响应." name:"FirebaseError" serverResponse:" Multipart body不包含2或3个部分. "
不过,还有另一种方法可以使用Firebase存储putString方法将数据上传到Firebase存储.哪个适用于普通字符串.但即使我使用这种方法上传.我和以前一样得到了相同的服务器响应.
firebase.storage()
.ref()
.child(userID)
.putString('string')
.then(p => {console.log(p)})
.catch(p => {console.log(p)});
Run Code Online (Sandbox Code Playgroud)
从我从这个答案中学到的东西来说.该putString方式应该工作.
我究竟做错了什么?在React中,代码对我来说很好.每当我粘贴到React-native时.它停止工作.
我刚刚在Ven评论之前尝试过react-native-fetch-blob,并且我能够使它工作,尝试在示例中使用索引文件中的这个片段:
1)课前声明:
import RNFetchBlob from 'react-native-fetch-blob';
const Blob = RNFetchBlob.polyfill.Blob;
window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest;
window.Blob = Blob;
Run Code Online (Sandbox Code Playgroud)
2)在存储方法内:
let filePath = 'YOUR/FILE/PATH';
let fileName = 'file_name.jpg';
let rnfbURI = RNFetchBlob.wrap(filePath);
// create Blob from file path
Blob
.build(rnfbURI, { type : 'image/png;'})
.then((blob) => {
// upload image using Firebase SDK
firebase.storage()
.ref('images')
.child(fileName)
.put(blob, { contentType : 'image/jpg' })
.then((snapshot) => {
console.log('Uploaded', snapshot.totalBytes, 'bytes.');
console.log(snapshot.metadata);
var url = snapshot.metadata.downloadURLs[0];
console.log('File available at', url);
}).catch(function(error) {
console.error('Upload failed:', error);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |