![](/img/trans.png)
[英]How to append an array of strings to an array in Firebase using arrayUnion (TypeScript)
[英]How to push an object in an array with arrayUnion() in Firebase Firestore?
我當前的文檔如下所示:
{
"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”字段中推送 object,但出現錯誤。 我現在使用的代碼是:
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` });
});
但是我收到了這個錯誤
錯誤:Update() 需要單個 JavaScript object 或后跟可選前提條件的字段/值對的交替列表。 參數“dataOrField”的值不是有效的 Firestore 文檔。 無法序列化“FieldValueDelegate”類型的 object(在字段“submittedBy”中找到)。 Firestore 不支持具有自定義原型的 JavaScript 對象(即通過“new”運算符創建的對象)。
您正在混淆 Firestore SDK。 如果您使用 Admin SDK 進行更新,您還需要使用 Admin SDK 來指定 FieldValue 類型值。
而不是這個:
submittedBy: firebase.firestore.FieldValue.arrayUnion(submittedAssignment)
用這個:
submittedBy: admin.firestore.FieldValue.arrayUnion(submittedAssignment)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.