Teoman Kirac
Teoman Kirac

Reputation: 778

update subcollection field in firestore

i have a firestore collection and want to update a couple fields in it's subcollection, which is in the form of an array. I cannot manage to do this. the data parameter gets me exactly what I want, and then i slice it to get the last array in subcollection. Have broken it down to collection('').doc('').collection(''), as well, with no luck. Thank you for any help!

async updateDialogueStatus({ state }, data){
    const whoDis =  this.$fire.auth.currentUser
    if (data.dialogue.length > 0) {
      const lastDialogueInArray = data.dialogue.slice(-1)[0];
      this.$fire.firestore.collection('conversations/' + data.id + 'dialogue/' + lastDialogueInArray.messageId).update({
           status: "read",
           readBy: whoDis.email
      })
    } else {}

i get this error: "Uncaught (in promise) TypeError: _this2.$fire.firestore.collection(...).update is not a function"

Upvotes: 1

Views: 292

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 600120

You're constructing a path to the document to update, but then call this.$fire.firestore.collection. Call .doc to get the correct object, on which you can call update.

//                   👇                                👇
this.$fire.firestore.doc('conversations/' + data.id + '/dialogue/' + lastDialogueInArray.messageId).update({

Upvotes: 1

Related Questions