javascript - 尝试更新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,但没有找到有效的答案。
以下是我一直在关注的文档:更新数组中的元素
任何帮助将不胜感激!!谢谢。
解决方案
所以我设法通过导入以下内容使其工作:
import firebase from 'firebase/app'
感谢以下SO线程
似乎当您想要访问需要从“firebase/app”导入的“firestore”对象时。
推荐阅读
- terraform - for_each 被“移动”后抛出错误
- python-3.x - python3.x 分段错误
- laravel - 我如何在 whereHas Laravel 8 中使用相关模型范围
- snowflake-cloud-data-platform - 以动态 where 子句作为参数的雪花 UDTF
- c++ - c++模板部分实现
- javascript - 摩卡柴期待。如何验证 A 类是否存在?
- pandas - matplotlib 的一个神秘行为——情节
- linux - 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护进程是否正在运行?请参阅“搬运工运行--帮助”
- json - JsonSchema - 如果定义了另一个数组字段,则仅允许数组字段中的一项
- javascript - Vuejs - 将查询字符串值放入组件中