首页 > 解决方案 > 尝试更新firestore中的数组时出现“TypeError:无法读取未定义的属性'arrayUnion'”

问题描述

尝试更新 Cloud Firestore 中的数组时,我收到以下错误消息:

TypeError: Cannot read property 'arrayUnion' of undefined

这是我的代码以及我的 firebase 配置:

import fire from '../config/Firebase';
  
let tweetToUpdate = 'example-value';

fire.firestore().collection("liked-tweets")
  .doc(userID)
  .update({
    tweets: fire.firestore.FieldValue.arrayUnion(tweetToUpdate),
    });

Firebase.js

import firebase from "firebase";

const CONFIG = {
  apiKey: "",
  authDomain: "twitter-clone-c1b85.firebaseapp.com",
  projectId: "twitter-clone-c1b85",
  storageBucket: "twitter-clone-c1b85.appspot.com",
  messagingSenderId: "987719332990",
  appId: "1:987719332990:web:2fde4fb30d70bcf0bb542f",
  measurementId: "G-T347VWPPJM",
};

const fire = firebase.initializeApp(CONFIG);

export default fire;

根据错误消息,它表明“fire.firestore”对象未定义,因此没有名为“FieldValue”的属性。但是,我的“火”不应该有“火库”对象吗?

其他方法如 fire.firestore()、fire.storage() 工作正常。

我怀疑这与我如何导出/导入 firebase 有关,但我无法弄清楚我哪里出错了。

我尝试了一些相关的 SO 线程,例如Firestore arrayUnion,但没有找到有效的答案。

以下是我一直在关注的文档:更新数组中的元素

任何帮助将不胜感激!!谢谢。

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


所以我设法通过导入以下内容使其工作:

import firebase from 'firebase/app'

感谢以下SO线程

似乎当您想要访问需要从“firebase/app”导入的“firestore”对象时。


推荐阅读