【发布时间】:2021-03-17 23:36:56
【问题描述】:
当我在 Visual Studio 代码中按保存时,这段代码工作。但是,如果我在浏览器中刷新预览页面,它会显示此错误:未处理的拒绝(FirebaseError):使用无效数据调用的函数 Query.where()。不支持的字段值:未定义
let { id } = useParams();
const [video, setVideo] = React.useState([]);
const [show, setShow] = React.useState([]);
const classes = useStyles();
React.useEffect(() => {
const fetchData = async () => {
const db = firebase.firestore();
const data = await db
.collection("videos")
.where('path', '==', id)
.get()
setVideo(data.docs.map(doc => doc.data()));
}
fetchData()
}, [])
let showUrl = video.map(video =>(video.uploadBy));
console.log(showUrl[0]);
let videoDate = video.map(video =>(video.date.toDate()));
console.log(videoDate[0]);
React.useEffect(() => {
const fetchData = async () => {
const db = firebase.firestore();
const data = await db
.collection("shows")
.where('urlPath', '==', showUrl[0])
.get()
setShow(data.docs.map(doc => doc.data()));
}
fetchData()
}, [])
我认为问题在于我试图以错误的方式声明变量“showUrl”。 console.log(showUrl[0]) 完美运行。它准确地打印出我需要的值。
【问题讨论】:
标签: javascript reactjs firebase google-cloud-firestore