尝试将我上传的图片的网址存储在Firestore中时遇到错误

时间:2019-06-07 12:08:59

标签: reactjs google-cloud-firestore

我的应用运行良好,除了它在尝试存储上载图片的网址时会产生错误。

FirebaseError:函数DocumentReference.set()用无效数据调用。不支持的字段值:未定义(在字段eventImgUrl中找到)

const onSubmit = (e) => {
        e.preventDefault();

        if(eventImage) {

        const uploadImage = storage.ref(`EventImages/${values.eventName}`).put(eventImage);
        uploadImage.on('state_changed',
            (error) => {
                console.log(error);
            },
            () => {
                storage.ref('EventImages').child(values.eventName).getDownloadURL().then(url =>{
                    console.log(url);
                    setUrl(url);
                })

            }
        );
        }

        dbref.add({
            eventName: values.eventName,
            eventVenue: values.eventVenue,
            eventAddress: values.eventAddress,
            eventCategory: values.eventCategory,
            eventOrganizer: values.eventOrganizer,
            eventPhone: values.eventPhone,
            eventEmail: values.eventEmail,
            eventDetails: values.eventDetails,
            eventDate: selectedDate.toDateString(),
            eventTime: selectedDate.toLocaleTimeString(),
            eventImgUrl: eventImageUrl
        }).then((docRef) => {
            console.log("Document written with ID: ", docRef.id);
            setValues('');
            setImg('');
            setUrl('');
        }).catch((error) => {
            console.error("Error adding document: ", error);
        });

    }

我想将img URL存储到我创建的文档中。我使用的网址钩子为:const [eventImageUrl,setUrl] = React.useState();

3 个答案:

答案 0 :(得分:0)

错误消息告诉您eventImageUrl未定义。这意味着您从未为其分配值。在您在此处显示的代码中,我们甚至看不到它的声明位置。

您将必须调试代码,并确保eventImageUrl包含您期望的值。

答案 1 :(得分:0)

错误来自您的const [eventImageUrl, setUrl] = React.useState()eventImageUrl更改为url。这似乎是您的问题

答案 2 :(得分:0)

当您

request.get(...)

有什么价值吗?现在尝试console.log您的

package main

import (
      "fmt"
      "strings"
)

func main() {
   str := strings.Split("HELLO","")
    fmt.Print(str[1])
}

在将其添加到数据库之前...说什么?我相信它将是不确定的。您也可以尝试对网址进行硬编码

console.log(url)

行得通吗?

如果是这样,则您知道问题出在您的eventImageUrl挂钩中。为了帮助您,我们需要完整的代码

更新

尝试一下

eventImageUrl