首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Firestore中使用arrayUnion()将对象推送到数组中?

如何在Firestore中使用arrayUnion()将对象推送到数组中?
EN

Stack Overflow用户
提问于 2020-08-02 21:27:22
回答 1查看 903关注 0票数 3

我目前的文档如下:

代码语言:javascript
复制
{
    "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‘字段中推送一个对象,但是我得到了一个错误。我现在使用的代码是:

代码语言:javascript
复制
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对象,要么需要一个交替的字段/值对列表,然后是一个可选的先决条件。参数"dataOrField“的值不是有效的Fi还原文档。无法序列化类型为"FieldValueDelegate“的对象(在字段”submittedBy“中找到)。Firestore不支持带有自定义原型的JavaScript对象(即通过“新”操作符创建的对象)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-02 21:39:37

你把Firestore混在一起了。如果使用Admin进行更新,还需要使用Admin指定FieldValue类型值。

而不是这样:

代码语言:javascript
复制
      submittedBy: firebase.firestore.FieldValue.arrayUnion(submittedAssignment)

用这个:

代码语言:javascript
复制
      submittedBy: admin.firestore.FieldValue.arrayUnion(submittedAssignment)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63221195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档