android - 在本机反应中将图像上传到firebase:未定义不是一个函数
问题描述
正如标题所说,我正在尝试以 react native 将图像上传到 firebase。我正在为此使用react-native-image-picker
和firebase
模块。我的代码如下:(为清楚起见,仅包括“主要”部分)
import ImagePicker from 'react-native-image-picker';
...
//called on pressing a button
onChooseImagePress = async () => {
let result = await ImagePicker.open({ //error occurs here
takePhoto: true,
useLastPhoto: true,
chooseFromLibrary: true
});
if (!result.cancelled) {
this.uploadImage(result.uri, "test-image")
.then(() => {
Alert.alert("Success");
})
.catch((error) => {
Alert.alert(error);
});
}
}
uploadImage = async (uri, imageName) => {
const response = await fetch(uri);
const blob = await response.blob();
var ref = firebase.storage().ref('images').child("userName/" + imageName);
return ref.put(blob);
}
....
问题:
我收到此错误:undefined is not a function
。这是相同的屏幕截图:
我不确定它甚至意味着什么,因为它ImagePicker
有一个open
功能。请注意,我已经提供了所需的权限。因此,这不是问题。请帮我解决这个问题。谢谢...
解决方案
你在用React-native
ImagePicker
吗?API文档中没有open
。
API参考react-native-image-picker
这是获取所需所选图像值的默认示例。
import ImagePicker from 'react-native-image-picker';
// More info on all the options is below in the API Reference... just some common use cases shown here
const options = {
title: 'Select Avatar',
customButtons: [{ name: 'fb', title: 'Choose Photo from Facebook' }],
storageOptions: {
skipBackup: true,
path: 'images',
},
};
/**
* The first arg is the options object for customization (it can also be null or omitted for default options),
* The second arg is the callback which sends object: response (more info in the API Reference)
*/
ImagePicker.launchImageLibrary(options, (response) => {
console.log('Response = ', response);
if (response.didCancel) {
console.log('User cancelled image picker');
} else if (response.error) {
console.log('ImagePicker Error: ', response.error);
} else if (response.customButton) {
console.log('User tapped custom button: ', response.customButton);
} else {
const source = { uri: response.uri };
// You can also display the image using data:
// const source = { uri: 'data:image/jpeg;base64,' + response.data };
this.setState({
avatarSource: source,
});
}
});
推荐阅读
- python - 如何正确安装 QGIS Plugin WNT?由于错误调用 classFactory() 方法,插件未加载:未定义名称 'pyqtWrapperType'
- python-3.x - 刮取一所学校历史上排名前 247 位的大学橄榄球新兵
- firefox - 我如何获得一个 Firefox 插件来向 api 发出 get 请求
- r - R:如何根据某些标准选择的行在数据框列中分配值?
- r - R:对 geom_text 使用单独的 df 会导致不需要的图例元素
- java - 单击Android Studio时未打开自定义3点菜单
- google-cloud-platform - 如何设置只能从 App Engine 标准环境连接的 Google CloudSQL 用户
- r - 如何从 df 列表中获取某个变量的 df 名称和第一个输入值
- reactjs - 如何从前端获取 EKS pod 的环境变量?
- ruby - 在 ruby 模块的上下文中,self.method 和常规方法有什么区别?