在 Firestore (NodeJS) 上的文档中设置文档引用

2024-01-24

我正在尝试使用 NodeJS v8.6.0 创建一个包含 Firestore 参考的文档。像这样

const admin = require('firebase-admin')
admin.initializeApp({ credential: MY_CREDENTIAL, databaseURL: MY_DB_URL })
const db = admin.firestore()

const ref = db.doc('foo/someDoc')
db.doc('bar/targetDoc').set({ link: ref })

虽然ref is a DocumentReference,结果是

错误:参数“data”不是有效的文档。输入对象更深 超过 20 个级别或包含一个循环。

有没有办法在 NodeJS (Admin)SDK 上做到这一点?


另外,代码中使用的包是

"firebase-admin": "^5.4.1"

and

console.log(ref)

outputs

DocumentReference {
  _firestore: 
   Firestore {
     makeAuthenticatedRequest: 
      { [Function: makeAuthenticatedRequest]
        getCredentials: [Function: bound getCredentials],
        authClient: [Object] },
     authClient: 
      Auth {
        authClientPromise: null,
        authClient: null,
        config: [Object],
        environment: {} },
     baseUrl: undefined,
     getCredentials: [Function: bound getCredentials],
     globalInterceptors: [],
     interceptors: [],
     packageJson: 
      { name: '@google-cloud/firestore',
        version: '0.8.1',
        author: 'Google Inc.',
        description: 'Firestore Client Library for Node.js',
        contributors: [Array],
        main: './src/index.js',
        files: [Array],
        repository: 'googleapis/nodejs-firestore',
        keywords: [Array],
        dependencies: [Object],
        devDependencies: [Object],
        scripts: [Object],
        license: 'Apache-2.0',
        engines: [Object],
        types: './types/firestore.d.ts' },
     projectId: 'MY_PROJECT',
     projectIdRequired: true,
     Promise: [Function: Promise],
     grpcMetadata: Metadata { _internal_repr: [Object] },
     maxRetries: undefined,
     userAgent: 'gcloud-node-firestore/0.8.1',
     activeServiceMap_: Map {},
     protos: {},
     _preferTransactions: false,
     _lastSuccessfulRequest: null,
     api: { Firestore: [Object] },
     _referencePath: 
      ResourcePath {
        segments: [],
        _formattedName: undefined,
        _projectId: 'dewpod-dev',
        _databaseId: '(default)' },
     app: 
      FirebaseApp {
        firebaseInternals_: [Object],
        services_: [Object],
        isDeleted_: false,
        name_: '[DEFAULT]',
        options_: [Object],
        database: [Function: bound ],
        auth: [Function: bound ],
        messaging: [Function: bound ],
        storage: [Function: bound ],
        firestore: [Function: bound ],
        INTERNAL: [Object] },
     INTERNAL: FirestoreInternals {} },
  _referencePath: 
   ResourcePath {
     segments: [ 'orgs', 'fooOrg' ],
     _formattedName: undefined,
     _projectId: 'dewpod-dev',
     _databaseId: '(default)' } }

完整的错误消息是

/SOME_PATH/node_modules/@google-cloud/firestore/src/validate.js:86
        throw new Error(message);
        ^

Error: Argument "data" is not a valid Document. Input object is deeper than 20 levels or contains a cycle.
    at Object.exports.(anonymous function) [as isDocument] (/SOME_PATH/node_modules/@google-cloud/firestore/src/validate.js:86:15)
    at WriteBatch.set (/SOME_PATH/node_modules/@google-cloud/firestore/src/write-batch.js:251:14)
    at DocumentReference.set (/SOME_PATH/node_modules/@google-cloud/firestore/src/reference.js:416:8)
    at Object.<anonymous> (/SOME_PATH/fstest.js:17:20)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Function.Module.runMain (module.js:665:10)

这是 Firestore 管理 SDK 和常规节点 SDK 之间交互中的错误。

对 @google-cloud/firestore 0.8.2 的更新应该可以解决此问题。

您可以使用以下命令更新您的项目npm update以获得此更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Firestore (NodeJS) 上的文档中设置文档引用 的相关文章

随机推荐

  • jQuery 中有样式选择器吗?

    例如 如果我想选择它的 alt 是 Home 的每个图像 我可以执行以下操作 img alt Home 但是我怎样才能选择它们的每个元素width例如 在单个选择器中 CSS 属性为 750px EDIT 如果没有这样的选择器 是否有任何插
  • 在 Haskell 中查找函数的行号

    我正在尝试创建一个 Haskell 程序 它将一些简单的 2d 形状绘制到屏幕上 但是当您将鼠标悬停在每个形状上时 它会打印创建该形状的源代码行 为了做到这一点 我希望能够创建带有尺寸参数和指示行号的最终参数的形状 像这样的东西 rect1
  • 使用 Linq 获取第 N 个值

    如何使用 Linq 获取第 N 行 两列都是文本 所以我不能使用最小值 最大值 var nthItem items Skip n First
  • Android 语音识别作为 Android 4.1 和 4.2 上的服务

    我已经成功地让连续语音识别 使用 SpeechRecognizer 类 作为一项服务在所有 Android 版本 最高 4 1 上运行 我的问题是让它在版本 4 1 和 4 2 上工作 因为众所周知 存在一个问题 即 API 没有按照记录进
  • 使用 bufferedimages 将视频编码为 h264?

    我正在尝试使用 java 将大量缓冲图像 由我的应用程序动态创建的预先保存的图像 转换为视频 并希望有一个库可以帮助完成该过程 我探索了许多不同的选项 例如 jcodec 没有关于如何使用它的文档 Xuggler 由于与jdk5及其相关库的
  • scala:向枚举添加方法

    我有一个像这样的简单枚举 object ConditionOperator extends Enumeration val Equal Value equal val NotEqual Value notEqual val GreaterO
  • git pull:不断告诉我在拉取之前隐藏本地更改

    当我尝试使用 git pull 拉取我的 git 存储库时 它不断告诉我我有本地更改 尽管我没有触及任何提到的文件 有人可以解释这种行为并知道解决方案吗 git 状态 On branch master Your branch is behi
  • GlassFish 4 / EclipseLink 延迟加载 @ManyToOne 关系失败

    GlassFish 4 实际上是它的 JPA 实现 即 EclipseLink 无法从我们的 Java EE 7 应用程序延迟加载 ManyToOne JPA 关系 默认 渴望加载是可以的 但不能是延迟加载 学生 实体中的关系是 ManyT
  • 将值传递给路由

    我有一份物品清单 当用户点击某个项目时 用户将被带到项目详细信息页面 我想将包含项目详细信息 如项目的图像 URL 的对象传递给路线 但是 我不想在路由网址中公开它 如果有办法做类似的事情 a item name a 那将是黄金 我已经看到
  • 如何用vb6查询网站?

    vb6中查询网页的函数是什么 我想做的是从雅虎财经获取数据 例如 此 url 返回一个 csv 文件 其中包含通用电气的股息值 我需要在函数中运行它并让函数返回答案 说到 Excel 您可以创建网络查询 http office micros
  • 在 Mac 上更新 Python

    我想在 mac 上将 python 2 6 1 更新到 3 x 但我想知道是否可以使用终端来完成此操作 或者我必须从 python 网站下载安装程序 我问这个问题是因为安装程序没有更新我的终端 python 版本 OS X 上的默认 Pyt
  • Hibernate 导致:org.hibernate.AnnotationException:未知的mappedBy

    我有两节课 Entity Table name profil public class Profil Id GeneratedValue strategy GenerationType AUTO Column name id private
  • 将 Tensorflow 中除 max 之外的所有值归零

    我有一个数组 0 3 0 5 0 79 0 2 0 11 我想将除最大值之外的所有值转换为零 所以结果数组将是 0 0 0 79 0 0 在 Tensorflow 图中执行此操作的最佳方法是什么 如果你想保留最大值的所有出现 你可以使用 c
  • 使用 Paramiko 进行递归目录下载?

    我想通过 SSH 递归下载一个包含未知内容的目录 并一直在尝试 Paramiko 我看过几个如何上传目录的示例 但没有一个示例涵盖递归下载 我可以列出目录中的所有项目 但无法找到一种方法来了解该项目是文件 要下载 还是目录 要递归调用 tr
  • 如何在 Mac OS X 10.5 中处理 Finder 中的多个文件拖放操作?

    我需要获取从 Finder 拖 放到我的应用程序中的所有文件的 URL 我有一个在 10 6 上运行的 Cocoa 应用程序 它通过使用新的 10 6 NSPasteboard API 来处理粘贴板上的多个项目 我正在尝试将此应用程序向后移
  • Windows Phone 7、登录屏幕重定向和 .exit 案例?

    我知道这个问题已经被讨论得令人作呕 但我想介绍一下我的情况 我的应用程序中的起始页是login xaml 用户登录 用户名和密码通过我的WCF服务进行身份验证 用户名保存在独立存储中 然后用户被重定向到mainpage xaml 当用户启动
  • NSTableColumn 大小适合内容

    我正在 Mac OS X 10 6 Snow Leopard 中进行开发 当我在 NSTableView 的两个列标题之间双击时 左侧的列会自动调整大小 就像您所期望的那样 我也想在上下文菜单中提供此功能 但似乎没有可公开访问的功能来执行此
  • 将具有 is-inactive 类的元素的光标设置为默认值

    客观的 一旦选择了每个类别的最大球员人数 两名守门员 六名后卫 十二名前锋 剩余的球员picked与班级is inactive应设置为cursor default 问题的澄清 所有球员都有班级is inactive作为默认值 我想做的是尝试
  • 从浏览器地址栏执行 Javascript 方法 - GWT

    我试图通过在浏览器 URL 地址栏上执行以下命令来在我的 Web 应用程序上执行 Javascript javascript window alert test void 0 但是 什么也没有发生 警报框也没有出现 原因可能是应用程序在 D
  • 在 Firestore (NodeJS) 上的文档中设置文档引用

    我正在尝试使用 NodeJS v8 6 0 创建一个包含 Firestore 参考的文档 像这样 const admin require firebase admin admin initializeApp credential MY CR