Unable to return value from Vuejs method and firestore

前端 未结 2 335
挽巷
挽巷 2021-01-17 05:38

i want to return the value from the firestore OnSnapshot function so that i can retrieve the url of user image. I am using vuejs and firestore. And i have activeUserIm

2条回答
  •  孤城傲影
    2021-01-17 06:10

    You can wrap the function in a promise and wait for when the result is available.

    Example:

    activeUserImg: () => {
        return new Promise(function(resolve, reject) {
              const u = firebase.auth().currentUser;
    
              firebase
                .firestore()
                .collection('Colleges')
                .doc(u.uid)
                .onSnapshot(function(doc) {
                    var img_arr=[];
                    this.img_arr.push(doc.data())
                    this.img= doc.data().logo
    
                    // return the result
                    resolve(this.img || this.$store.state.AppActiveUser.img);
                });
        });
    }
    

    Then, you can access the value by

    activeUserImg.then(result => {
       console.log(result);
    })
    

    Or

    const result = await activeUserImg()
    
    console.log(result)
    

提交回复
热议问题