【发布时间】:2021-03-02 01:38:09
【问题描述】:
背景
我正在尝试手动将图像上传到 firebase 存储(使用网页中的上传文件按钮),但是我不知道以后如何将它们链接到 firestore 文档。我想出的(我不确定它是否有效)是复制存储桶中图像的 url 并将其添加到名为 profilePicture 的文档中的字符串类型字段中。我无法让它工作的原因是我对 React Native 真的很陌生,除了输入特定的本地路线之外,我不知道如何正确地要求图像。还请注意,我需要用户数据(例如个人资料名称)的方式是在使用电子邮件/密码身份验证登录后,我将数据作为参数传递以响应导航并将其作为额外数据。
我的尝试
一旦我复制了图像 url 并将其粘贴到 firestore 文档中,我将这样做:
const profilePicture = props.extraData.profilePicture;
<Image source={require({profilePicture})}/>
我也尝试过使用反引号,但这也不起作用。我收到的错误消息是:
TransformError src\screens\Profile\ProfileScreen.js: src\screens\Profile\ProfileScreen.js:Invalid call at line 27: require({
profilePicture: profilePicture
})
注意:这是一个世博会管理的项目。
问题
问题出在代码中还是在我链接两个图像的方式上?也许两者兼而有之?我应该要求提供文件而不是依赖之前传递的数据吗?
提前非常感谢!
编辑 1:
我正在尝试从当前登录的用户那里获取所有信息,经过一些研究后,我了解到以这种方式需要图像:
const ref = firebase.storage().ref('path/to/image.jpg'); const url = 等待 ref.getDownloadURL();
然后我需要<Image source={{uri: url}}/>中的图像
我知道这对于静态的东西可能很有用,但我不知道如何为每个不同的用户更新 ref。
编辑 2:
尝试使用编辑 1 中提到的方法,只是想看看会发生什么,但是它似乎不起作用,图像只是没有显示。 可能是因为我的组件是函数组件而不是类组件(?
【问题讨论】:
标签: firebase react-native google-cloud-firestore firebase-storage