Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';arrayUnion';未定义的_Javascript_Reactjs_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 无法读取属性';arrayUnion';未定义的

Javascript 无法读取属性';arrayUnion';未定义的,javascript,reactjs,firebase,google-cloud-firestore,Javascript,Reactjs,Firebase,Google Cloud Firestore,我正在尝试向Firebase中的现有数组添加元素。我在用react。我已经在这里看到了关于这个问题的其他提及,解决方案总是完全是我已经在做的事情,因此非常感谢您的帮助。这只需要在用户选择一个团队加入并且我已经检查了团队是否真实的情况下更新 我的firebase设置: import firebase from 'firebase/app' import 'firebase/functions' import 'firebase/firestore' import 'firebase/auth' i

我正在尝试向Firebase中的现有数组添加元素。我在用react。我已经在这里看到了关于这个问题的其他提及,解决方案总是完全是我已经在做的事情,因此非常感谢您的帮助。这只需要在用户选择一个团队加入并且我已经检查了团队是否真实的情况下更新

我的firebase设置:

import firebase from 'firebase/app'
import 'firebase/functions'
import 'firebase/firestore'
import 'firebase/auth'
import 'firebase/storage'

// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
  apiKey: process.env.REACT_APP_API_KEY,
  authDomain: process.env.REACT_APP_AUTH_DOMAIN,
  databaseURL: process.env.REACT_APP_DATABASE_URL,
  projectId: process.env.REACT_APP_PROJECT_ID,
  storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
  messagingSenderId: process.env.REACT_APP_MESSAGE_SENDER_ID,
  appId: process.env.REACT_APP_ID,
  measurementId: process.env.REACT_APP_MEASUREMENT_ID
};

const firebaseApp = firebase.initializeApp(firebaseConfig)

const db = firebaseApp.firestore()
const auth = firebaseApp.auth()
const storage = firebaseApp.storage()
// const provider = new firebase.auth.GoogleAuthProvider()

export { db, storage, auth }
我的职能:

import { db, storage } from '../../firebase'
...
...
...

if(teams) {
      db.collection('teams').doc(team.id).update({
        teamMembers: db.FieldValue.arrayUnion(currentUser.id)
      })
    }
错误:

Uncaught (in promise) TypeError: Cannot read property 'arrayUnion' of undefined
    at userInfoFirebase (SecondStep.js:179)
    at submitFinalData (SecondStep.js:200)
    at handleSubmit (SecondStep.js:281)
    at HTMLUnknownElement.callCallback (react-dom.development.js:3945)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
    at invokeGuardedCallback (react-dom.development.js:4056)
    at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:4070)
    at executeDispatch (react-dom.development.js:8243)
    at processDispatchQueueItemsInOrder (react-dom.development.js:8275)
    at processDispatchQueue (react-dom.development.js:8288)
    at dispatchEventsForPlugins (react-dom.development.js:8299)
    at react-dom.development.js:8508
    at batchedEventUpdates$1 (react-dom.development.js:22396)
    at batchedEventUpdates (react-dom.development.js:3745)
    at dispatchEventForPluginEventSystem (react-dom.development.js:8507)
    at attemptToDispatchEvent (react-dom.development.js:6005)
    at dispatchEvent (react-dom.development.js:5924)
    at unstable_runWithPriority (scheduler.development.js:646)
    at runWithPriority$1 (react-dom.development.js:11276)
    at discreteUpdates$1 (react-dom.development.js:22413)
    at discreteUpdates (react-dom.development.js:3756)
    at dispatchDiscreteEvent (react-dom.development.js:5889)

您的
db=firebase.firestore()
,但是
FieldValue
是在
firebase.firestore
上定义的(没有
()

您还需要将
firebase
命名空间导出为:

export { firebase, db, storage, auth }
通过以下方式导入:

import { firebase, db, storage } from '../../firebase'
然后将其用于:

teamMembers: firebase.firestore.FieldValue.arrayUnion(currentUser.id)


或者,您可以导出
arrayUnion
FieldValue
本身,并使用它们。

我从未使用过具有React的Firebase,但我认为您应该使用
Firebase.firestore.FieldValue.arrayUnion(currentUser.id)
而不是
db.FieldValue.arrayUnion(currentUser.id)
db=Firebase.firestore()
我在firebase文件中就是这样设置的。这是不正确的。您的
db
=
firebase.firestore()
,但是
FieldValue
是在
firebase.firestore上定义的(没有
()
)。谢谢!我希望文件中能更清楚地说明这一点。到目前为止,任何时候我遇到这种结构,我都可以像我在这里尝试的那样缩短。你的解决方案奏效了!谢谢我遇到了这个问题,浪费了太多时间在其他问题上,最后在去掉牙套后,它终于起了作用。一直在尝试谷歌搜索结果解决方案,但最终没有找到答案,这是在另一个网站上找到的。