Pat*_*kkx 5 javascript firebase reactjs
我正面临另一个问题。
我使用 firebase db 来存储文本和 firebase 存储来存储文件。我的问题来了。
问:从数据库中获取特定元素时,如何从存储中获取正确的图像?
这是我的尝试:
const storageRef = firebase.storage().ref('companyImages/companyImage' + 123);
^^^^^^^^^^^^ I dont have access to id yet :(
const task = storageRef.put(companyImage);
task.on('state_changed', () => {
const percentage = (snap.bytesTransferred / snap.totalBytes) * 100;
// ^^^^^^^^^^^^ not sure if i even need this
}, (err) => {
console.log(err);
}, () => {
firebase.database().ref('offers').push(values);
^^^^^^^^^^^^^^^ now I could retrieve id from it with .key but its too late
});
Run Code Online (Sandbox Code Playgroud)
如您所见,我首先要做的是上传图像,当它成功时,我开始将数据上传到数据库。
尽管如此,它并没有像预期的那样工作。上传图像时,我必须用正确的名称命名它,id以便稍后在组件中轻松检索它。
它可能看起来有点复杂,但会感谢任何形式的帮助。任何建议或提示。
我应该先将数据上传到数据库,然后再将图像上传到存储吗?
您可以在上传文件 \xe2\x80\x93 之前生成推送 ID,您也可以仅将返回快照的下载 URL 保存在 at task.snapshot.downloadURL,这样您就不必使用存储引用从存储中检索文件。
const offerRef = firebase.database().ref('offers').push();\nconst storageRef = firebase.storage().ref(`companyImages/${offerRef.key}`);\nconst task = storageRef.put(companyImage);\n\ntask.on('state_changed', (snap) => {\n const percentage = (snap.bytesTransferred / snap.totalBytes) * 100; \n}, (error) => {\n console.log(err);\n}, () => {\n offerRef.set(values);\n});\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
446 次 |
| 最近记录: |