vuexfire firestoreAction, binding with arg

Viewed 693

I'm trying to bind my module's store to a document

import Vue from 'vue'
import { db } from '../my-firebase/db'
import { firestoreAction } from 'vuexfire'

export const user = {
   ...
    actions: {
        logOutUser: ({ commit }) => {
            commit('logOutUser')
        },
        logInUser: ({ dispatch, commit }, userInfo) => {
            let dbRef = db.collection('users').doc(userInfo.uid)
            dbRef.update({ authInfo: userInfo })
                .then(() => {
                    commit('logInUser', userInfo)
                })
            dispatch('bindFirebaseUser', dbRef)
        },
        bindFirebaseUser: (context, userRef) => {
            console.log('Running dispatch BindFirebaseUser')
            return firestoreAction(({ bindFirestoreRef }) => {
                // return the promise returned by `bindFirestoreRef`
                console.log('userRef:')
                console.log(userRef)
                return bindFirestoreRef('firebaseData', userRef)
            })
        }
    }
}

It's not working. How do I bindFirestoreRef with the argument userRef? It doesn't seem to bind, though I can write to the firestore properly, so I would assume that my db is set up correctly.

It just doesn't give any form of error whatsoever, but if it binds, it should populate my store with the data I wrong shouldn't it?

1 Answers

You can pass the reference as the second argument to firestoreAction

bindFirebaseUser: firestoreAction(({ bindFirestoreRef }, userRef) => {
   return bindFirestoreRef('firebaseData', userRef)
})
Related