firebase.firestore.FieldValue.arrayUnion is not a function

Viewed 9616

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));
5 Answers

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

From this issue

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().

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")
    });
Related