我正在开发一个React Native项目,并且正在使用Firebase实时数据库。
我想维护一个用户个人资料页面。为此,我需要将用户个人资料图像上传到Firebase数据库。当我查看用户个人资料时,我应该能够看到带有相关用户个人资料图像的用户个人资料。我也应该能够更新和删除用户个人资料图片。
使用GCS(Google云存储)存储图像/文件并使用Firebase Realtime数据库存储URL也是可以的。
我只需要最好的解决方案。
我遇到了一些类似的问题,但仍然对这样做的明确方法感到困惑。
您能否解释一下并告诉我如何在React Native中做到这一点?
答案 0 :(得分:2)
我想在我的辅助项目中共享一些代码,该代码实现了您上面提到的功能。但是,很抱歉,无法完全访问该项目的源代码。
步骤1.在用户提交图像时上传图像文件。
class PGroup {
constructor(members) {
this.members = members;
}
add(value) {
if (this.has(value)) return this;
return new PGroup(this.members.concat([value]));
}
delete(value) {
if (!this.has(value)) return this;
return new PGroup(this.members.filter(m => m !== value));
}
has(value) {
return this.members.includes(value);
}
}
PGroup.empty = new PGroup([]);
let a = PGroup.empty.add("a");
let ab = a.add("b");
let b = ab.delete("a");
步骤2。在调用import firebase from 'react-native-firebase';
const upload = async (filepath: string, filename: string, filemime: string) => {
const metaData = { contentType: filemime };
const res = await firebase
.storage()
.ref(`gcs-folder-name-here/${filename}`)
.putFile(filepath, metaData); // put image file to GCS
return res;
};
函数之后,您应该能够从响应中检索图像URL,并将其保存回Firebase实时数据库。
upload
希望这会有所帮助。