Problème Firebase Computed HOOK providerData


#1

Bonjour,

J’ai un soucis dans mon code. J’essaye de lier une connexion à Firebase a l’aide de Google et de Password traditionnel

Le problème est que mon hook Computed fonctionne au chargement de la page mais pas lorsque je me link ou unlink avec Firebase

https://jsfiddle.net/ox7s45eL/1/

VOICI LE CODE

Merci :slight_smile:


#2

oui, tes computed vont se lancer à la création du composant et comme ils ne vont jamais voir de changement dans leur dépendances, ils ne seront jamais mis à jour.
Vue ne peut pas, de façon native, écouter les changement des objets firebase.
On peut simuler ça en ajoutant this.user && ... dans tes computed. Dès que user changera, les computed seront recalculer. Il reste à mettre à jour user lors du link/unlink.

D’ailleurs userMail est le parfait candidat pour un computed.

Sinon pour faire du code propre (oui, la méthode ci-dessus ressemble plus à un hack qu’autre chose), https://github.com/vuejs/vuefire doit faire le taff.


#3

Bonjour,

Merci pour ta réponse. J’ai pas tout a fait compris comment mettre a jour le user dans les link unlink et ça m’a l’air d’être de la bidouille pas très propre.

Du coup je me suis penché sur Vuefire,
J’ai donc instancié dans mon main.js Vuefire en faisant :

  • npm install de vuefire
  • import et appelle dans Vue.use

J’ai ensuite créé ma variable db = firebaseApp.database()
Et j’ai fais appelle dans mon new vue ( { } ) d’un objet firebase avec un anArray: db.ref(‘items’) pour tester comme sur le github de la démo.

Le problème est que dans ma page principale lors de l’import de db from ‘…/main’

J’ai l’objet firebase : { items: db.ref(‘items’) je n’ai aucune erreur mais dans la console j’ai tout de même l’erreur : Cannot read property ‘ref’ of undefined

Je ne comprend absolument pas pourquoi ca me mets ça… merci :slight_smile:


#4

Et dans cette même suite logique j’ai souhaité passer sur Firestore, J’ai donc réussi à afficher une liste d’entrées dans ma collection :

firestore () {
return {
users: db.collection(‘users’).orderBy(‘createdAt’)
}
},

Par contre je ne sais pas comment je peux afficher mon " user " correspondant au firebase.auth.currentUser lorsque celui ci change avec un link ou unlink