(FirebaseError): 在 reactjs 中使用无效数据调用函数 DocumentReference.set()

时间:2021-06-13 08:28:07

标签: javascript reactjs firebase google-cloud-firestore

在下面的代码中运行时出现这个 firebase 异常,当我尝试将数据添加到 firebase 数据库时,我在 React 应用程序中遇到了这个问题。

<块引用>

例外: 未处理的拒绝 (FirebaseError):使用无效数据调用函数 DocumentReference.set()。不支持的字段值:未定义(在文档 users/zk97w62poVh62epn4atnXncOSKd2/orders/pi_1J1o7XSAf8PnDB2r8kkLLunf 中找到)

任何人都可以在这里帮助我! 有关控制台日志,请参阅下图。

enter image description here

'''

const handleSubmit = async(e) => {
        e.preventDefault();
        setProcessing(true);

        const payload = await stripe.confirmCardPayment(clientSecret, {
            payment_method: {
                card : element.getElement(CardElement)
            }
        }).then(({paymentIntent}) => {   
            console.log(basket)
        console.log(paymentIntent.amount)
        console.log(paymentIntent.created)

        const data = {
            basket: basket,
            amount: paymentIntent.amount,
            created: paymentIntent.created
        }

        console.log(typeof(data))

        console.log(data)
       
        db
          .collection("users")
          .doc(user?.uid)
          .collection("orders")
          .doc(paymentIntent.id)
          .set(data)
            } ))


            setSucceeded(true)
            setError(null)
            setProcessing(false)

            dispatch({
                type : "EMPTY_BASKET"
            })

            history.replace("/orders")

        })
    }
'''

1 个答案:

答案 0 :(得分:0)

从错误消息来看,您的 data 对象中的一个值似乎是 undefined。从屏幕截图来看,这很可能是在 basket 中。我建议使用 console.log(JSON.stringify(basket)) 进行故障排除。

相关问题