React Native/Firebase-上载图像和其他信息
当按下按钮上传到firebase时,我使用这段代码来选择图像React Native/Firebase-上载图像和其他信息,firebase,react-native,Firebase,React Native,当按下按钮上传到firebase时,我使用这段代码来选择图像 <TouchableHighlight onPress={ () => this._pickImage() } style={styles.button}> <Text style={styles.buttonText}> Select a Photo </Text> </TouchableHighlight> _p
<TouchableHighlight onPress={ () => this._pickImage() }
style={styles.button}>
<Text
style={styles.buttonText}>
Select a Photo
</Text>
</TouchableHighlight>
_pickImage() {
this.setState({ uploadURL: '' })
ImagePicker.launchImageLibrary({}, response => {
uploadImage(response.uri)
.then(url => this.setState({ uploadURL: url }))
.catch(error => console.log(error))
});
}// end _pickImage
const uploadImage = (uri, mime = 'application/octet-stream') => {
return new Promise((resolve, reject) => {
const uploadUri = Platform.OS === 'ios' ? uri.replace('file://', '') : uri
const sessionId = new Date().getTime()
let uploadBlob = null
const imageRef = storage.ref('images').child(`${sessionId}`)
fs.readFile(uploadUri, 'base64')
.then((data) => {
return Blob.build(data, { type: `${mime};BASE64` })
})
.then((blob) => {
uploadBlob = blob
return imageRef.put(blob, { contentType: mime })
})
.then(() => {
uploadBlob.close()
return imageRef.getDownloadURL()
})
.then((url) => {
resolve(url)
})
.catch((error) => {
reject(error)
})
})
}
this.\u pickImage()}
style={style.button}>
选择一张照片
_pickImage(){
this.setState({uploadURL:''})
ImagePicker.launchImageLibrary({},响应=>{
上载映像(response.uri)
.then(url=>this.setState({uploadURL:url}))
.catch(错误=>console.log(错误))
});
}//结束图像
const uploadImage=(uri,mime='application/octet stream')=>{
返回新承诺((解决、拒绝)=>{
const uploadUri=Platform.OS=='ios'?uri.replace('file://',''):uri
const sessionId=new Date().getTime()
让uploadBlob=null
const imageRef=storage.ref('images').child(`${sessionId}`)
fs.readFile(上传URI,'base64')
。然后((数据)=>{
返回Blob.build(数据,{type:`${mime};BASE64`})
})
.然后((blob)=>{
uploadBlob=blob
返回imageRef.put(blob,{contentType:mime})
})
.然后(()=>{
uploadBlob.close()文件
返回imageRef.getDownloadURL()
})
。然后((url)=>{
解析(url)
})
.catch((错误)=>{
拒绝(错误)
})
})
}
这个很好用。如何更改此选项,让用户选择照片,然后点击另一个按钮,将用户输入的类似图像的描述的其他信息存储到firebase的相同数据结构中