【问题标题】:FieldValue is undefined字段值未定义
【发布时间】:2019-10-01 13:48:43
【问题描述】:

我在我的 react 应用程序中使用了 firestore。尝试获取/创建/更新文档时,它可以正常工作。 但是我无法访问我需要使用 arrayUnion 更新数组的 FieldValue。我使用的 firebase 版本是 6.6.2。

具体来说,这是我要开始工作的代码:

const locations = firebase.firestore.FieldValue.arrayUnion('location 1')
firebase.firestore().collection('config').doc('groups').update({ locations })

firebase.firestore() 在完全相同的文件中工作,但 firebase.firestore.FieldValue 未定义。

【问题讨论】:

  • 你是如何导入firebase的?
  • @RicardoLopes 我正在像这样导入 firebase:import firebase from 'firebase',而我的 firebase.js 文件如下所示:import * as firebase from 'firebase/app' import 'firebase/auth' import 'firebase/firestore' import 'firebase/storage' import 'firebase/functions' const { firebaseConfig } = require('./config.json') const app = firebase.initializeApp(firebaseConfig) export default app

标签: reactjs firebase google-cloud-firestore


【解决方案1】:

解决方案是直接从 firebase 包而不是从实例化的 firebase 应用导入 FieldValue。

import firebase from 'firebase/app'

const arrayToUpdate = firebase.firestore.FieldValue.arrayUnion(value)

【讨论】:

  • 嗨,你能告诉他们你是怎么做到的吗?我正在使用 ReactJS 顺便说一句
【解决方案2】:

我相信既然您将initializeApp 设置为app,您将改为使用app.firestore.FieldValue;

【讨论】:

  • 抱歉没有说明我是如何导入 firebase 的。我有一个名为 firebase.js 的文件,我在此文件中的默认导出名为 app,但由于它是默认导出,因此名称无关紧要。然后我像这样导入firebase:import firebase from './firebase'
  • 只是想评论一下,这可以为我解决问题。谢谢丹。
【解决方案3】:

您导入 firebase 的方式似乎确实存在问题。

我的应用初始化为:

admin.initializeApp(functions.config().firestore);

像这样使用它时,我有一个 arrayUnion:

import * as admin from 'firebase-admin';
const firestoreAdmin = admin;
const firestoreInstance = admin.firestore();

// Example: admin.firestore.FieldValue.arrayUnion('entry-to-add'),

【讨论】:

  • 这不是我想要做的。我正在尝试实现此处描述的功能:firebase.google.com/docs/reference/node/…
  • 编辑了我的答案以使其更具相关性
  • 我没有使用 admin sdk,而是客户端 web sdk 版本...最让我恼火的是,在同一个文件中使用完全相同的导入,我能够按预期使用 firestore(例如,从集合中获取文档)。
猜你喜欢
  • 2013-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 2014-09-03
  • 2019-06-06
  • 2015-01-19
  • 2020-07-02
相关资源
最近更新 更多