Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React Native/Firebase-上载图像和其他信息_Firebase_React Native - Fatal编程技术网

React Native/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

当按下按钮上传到firebase时,我使用这段代码来选择图像

    <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的相同数据结构中