【问题标题】:Firestore update array.Union function called with invalid dataFirestore 更新数组。使用无效数据调用的联合函数
【发布时间】:2019-06-16 07:30:41
【问题描述】:

我有一个对象数组;示例:listOfExpenses = [{...}, {...}, {...}],目前是一个空数组,我想在这个数组中添加一个对象。

我这样称呼它:

const chatInstance = db.collection("chats").doc("1234567");

chatInstance.update({
  listOfExpenses: admin.firestore.FieldValue.arrayUnion({
    amount: 10,
    category: "food",
    date: "2019-06-16T07:25:26.010Z"
  })
});

这是我得到的错误

 FirebaseError: Function DocumentReference.update() called with invalid data. Unsupported field value: a custom object (found in field listOfExpenses)
      at new FirestoreError (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:355:28)
      at ParseContext.createError (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19726:16)
      at validatePlainObject (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:20111:27)
      at UserDataConverter.parseData (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19912:13)
      at /Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19835:41
      at forEach (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:457:13)
      at UserDataConverter.parseUpdateData (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19826:9)
      at DocumentReference.update (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:20732:52)
      at bot.command.ctx (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/index.js:127:22)
      at Promise.resolve.then (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/telegraf/composer.js:128:56)

Failed to process updates. { FirebaseError: Function DocumentReference.update() called with invalid data. Unsupported field value: a custom object (found in field listOfExpenses)
    at new FirestoreError (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:355:28)
    at ParseContext.createError (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19726:16)
    at validatePlainObject (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:20111:27)
    at UserDataConverter.parseData (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19912:13)
    at /Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19835:41
    at forEach (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:457:13)
    at UserDataConverter.parseUpdateData (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:19826:9)
    at DocumentReference.update (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/@firebase/firestore/dist/index.node.cjs.js:20732:52)
    at bot.command.ctx (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/index.js:127:22)
    at Promise.resolve.then (/Users/edvinsantonovs/Documents/repos/dollar-dollar-bot/node_modules/telegraf/composer.js:128:56)
  code: 'invalid-argument',
  name: 'FirebaseError',
  toString: [Function] }

我不确定我做错了什么

【问题讨论】:

    标签: node.js firebase google-cloud-firestore firebase-admin


    【解决方案1】:

    当我遇到同样的错误时,这是​​因为我的 firebase 管理 SDK admin 实例与我用来获取 firestore() 实例的实例不同。您可能想尝试将示例 sn-p 中的 db 替换为 admin.firestore() 以确保您不是这种情况

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2021-02-24
      • 2019-02-13
      • 2021-02-24
      • 2021-11-05
      • 2020-04-18
      • 2022-07-20
      • 2020-11-22
      相关资源
      最近更新 更多