简体   繁体   中英

firebase.firestore.FieldValue.arrayUnion is not a function

I'm trying to update an array in my firestore, i followed the documentation provided by Google (https://firebase.google.com/docs/firestore/manage-data/add-data ) but It doesn't work, I also checked to make sure I have the latest version of the firebase npm module.

Here's my code:

> db
                    .collection('Data')
                    .doc('One')
                    .collection('Doc')
                    .doc(this.$route.params.id.toLowerCase())
                    .update({
                        myArr: firebase.firestore.FieldValue.arrayUnion(
                           'test'
                        ),
                    })
                    .then(() => console.log('Successfully written'))
                    .catch(err => console.log(err));

Firebase npm module was out of date. Had to manually reinstall

This has been released as part of @google-cloud/firestore v0.16.0. It is not yet available via Firebase Admin, but will be released shortly. Note that the function name is admin.firestore.FieldValue.arrayUnion() . ttps://github.com/firebase/firebase-admin-node/issues/323

"firebase-admin": "^6.0.0", is the version where arrayUnion was added. Upgrade the npm package.

Check https://github.com/firebase/firebase-js-sdk/blob/master/packages/firestore/CHANGELOG.md#060

import firebase from 'firebase/app'

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

If your using the new modular version 9 for javascript use the code below

import { getFirestore, arrayUnion, updateDoc } from "firebase/firestore";
const db = getFirestore(config);    
const pathRef = doc(db, "doc", "id");
    await updateDoc(pathRef , {
        myArr: arrayUnion("test")
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM