@fredrikbergelin/vuefire
v2.3.21
Published
Firestore bindings for Vue.js
Downloads
2
Maintainers
Readme
Vuefire
Vue.js bindings for Firebase Cloud Firestore and the Realtime Database
VueFire makes it super easy to bind firestore collections and documents and keep your local data always up to date with their remote versions.
Firebase Realtime database
Installation
yarn add firebase vuefire
# or
npm i firebase vuefire
Usage
Make sure to check the documentation for full usage instructions and tips
firestore
option
Vuefire adds a new firestore
option to any component. Like data
, it can be a function that returns an object too.
Make sure to create any property added to firestore
in data
as well, like todos
and currentTodo
in the following example:
import { firestorePlugin } from 'vuefire'
Vue.use(firestorePlugin)
new Vue({
data: {
// use an array for collection
todos: [],
// and null for documents
currentTodo: null,
},
firestore: {
todos: db.collection('todos'),
currentTodo: db.collection('todos').doc('1'),
},
})
$bind
and $unbind
Vuefire globally adds $bind
and $unbind
so you can programatically bind and unbind collections/documents/queries to an existing property in your Vue application:
// TodoList.vue
export default {
data: () => ({ todos: [] }),
created() {
// this unbinds any previously bound reference
this.$bind('todos', db.collection('todos')).then(todos => {
this.todos === todos
// todos are ready to be used
// if it contained any reference to other document or collection, the
// promise will wait for those references to be fetched as well
// you can unbind a property anytime you want
// this will be done automatically when the component is destroyed
this.$unbind('todos')
})
},
}
Tips:
- Use an empty array
[]
as the initial value for a property that holds a collection to makev-for
always work. - Use
null
for documents so you can wrap content with a simplev-if
(ref vue guide)
References Normalization
In Cloud Firestore you can reference other documents inside of documents. By default VueFire will automatically bind up to one nested references.
Contributing
Clone the repo, then:
$ yarn
$ yarn test