【发布时间】:2021-12-26 16:30:55
【问题描述】:
所以在这里我想将来自 firebase 存储的图像 URL 存储在 firestore 中。我收到未定义的错误,因为我的 setImgUrl 未定义。请帮我解决这个问题。
import React, { useState } from "react";
import "../mainTab.css";
import "./addScreen.css";
import firebase, { storage } from "../firebase";
const AddScreen = () => {
const db = firebase.firestore();
const [cat, setCat] = useState();
const [course, setCourse] = useState();
const [name, setName] = useState();
const [price, setPrice] = useState();
const [descrip, setDescrip] = useState();
const [image, setImage] = useState();
const [imgURL, setImgURL] = useState();
const onSubmitHandler = (event) => {
event.preventDefault();
const ref = storage.ref(`/images/${image.name}`);
const uploadTask = ref.put(image);
uploadTask.on("state_changed", console.log, console.error, () => {
ref.getDownloadURL().then((url) => {
setImage(null);
setImgURL(url);
console.log(imgURL);
});
});
const data = {
name: name,
price: price,
cat: cat,
course: course,
decription: descrip,
image: imgURL,
};
db.collection("menu")
.doc(course.toString())
.collection(name.toString())
.add(data)
.then(() => alert("menu item is posted"))
.catch((error) => alert("error: " + error));
setName("");
setPrice("");
setCat("");
setCourse("");
setImage("");
setDescrip("");
};
我需要 setImg 挂钩中的 img URL。 那么在完成上传后有什么办法我应该调用数据库写入函数(我尝试使用没有帮助的标志(假)钩子? 通过图像完美地上传到 Firebase 存储中
【问题讨论】:
标签: javascript reactjs google-cloud-firestore firebase-storage