gpt4 book ai didi

node.js - 如何在 Firebase Firestore 中使用 arrayUnion() 将对象推送到数组中?

转载 作者:行者123 更新时间:2023-12-04 16:26:11 53 4
gpt4 key购买 nike

我当前的文档如下所示:

{
"assignmentName": "OS Assignment-2",
"dueDate": "10 August",
"createdAt": "2020-08-02T20:27:28.916Z",
"maxMarks": 10,
"facutyName": "Dr. Muskan Gupta",
"semester": "3",
"submittedBy": [
{
"studentName": "Test name",
"downloadUrl": "URL"
},
{
"downloadUrl": "URL3",
"studentName": "Test name2"
},
{
"downloadUrl": "https://downloadthisfile.com",
"studentName": "Nakshatra Saxena"
},
{
"studentName": "Hello Bortehr",
"downloadUrl": "httpsav"
}
],
"program": "CSE",
"subject": "Operating System with UNIX"
}

我想在“submittedBy”字段中推送一个对象,但出现错误。我现在使用的代码是:

const submittedAssignment = {
studentName: req.body.studentName,
downloadUrl: req.body.downloadUrl,
};
admin
.firestore()
.collection("assignments")
.doc(req.params.assignmentId)
.update({
submittedBy: firebase.firestore.FieldValue.arrayUnion(submittedAssignment)
});
})
.then(() => {
return res
.status(201)
.json({ message: `Assignment submitted successfully` });
})
.catch((err) => {
console.error(err);
res.status(500).json({ error: `Error submitting assignment` });
});

但是我收到了这个错误

Error: Update() requires either a single JavaScript object or an alternating list of field/value pairs that can be followed by an optional precondition. Value for argument "dataOrField" is not a valid Firestore document. Couldn't serialize object of type "FieldValueDelegate" (found in field "submittedBy"). Firestore doesn't support JavaScript objects with custom prototypes (i.e. objects that were created via the "new" operator).

最佳答案

您正在混淆 Firestore SDK。如果您使用 Admin SDK 进行更新,您还需要使用 Admin SDK 指定 FieldValue 类型值。

而不是这个:

      submittedBy: firebase.firestore.FieldValue.arrayUnion(submittedAssignment)

使用这个:

      submittedBy: admin.firestore.FieldValue.arrayUnion(submittedAssignment)

关于node.js - 如何在 Firebase Firestore 中使用 arrayUnion() 将对象推送到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63221195/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com