Javascript 如何使用Vue和Firestore获取范围外promise返回的值

Javascript 如何使用Vue和Firestore获取范围外promise返回的值,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,我发现很难在其他方法中使用firestore承诺返回的值,因为我没有定义。我尝试以下面的方式使用async/await,但仍然没有成功 get_board_details(){ db.collection('members').where('board_id','==',this.$route.params.groupslug).get().then(querySnapshot=>{ querySnapshot.forEach( a

我发现很难在其他方法中使用firestore承诺返回的值,因为我没有定义。我尝试以下面的方式使用async/await,但仍然没有成功

get_board_details(){         db.collection('members').where('board_id','==',this.$route.params.groupslug).get().then(querySnapshot=>{
                     querySnapshot.forEach( async doc=>{
                       this.owner_id  = await doc.data().owner_id;
                      })
                    })
                  console.log(this.owner_id)
                  },

请尝试以下操作,事先确保您的this.$route.params.groupslug正确无误

get_board_details(){      
 db.collection('members').where('board_id','==',this.$route.params.groupslug).get().then(querySnapshot=>{
                     querySnapshot.forEach( doc=>{
                       this.owner_id  = doc.data().owner_id;
                       console.log(this.owner_id)
                      })
                    })
                  },

谢谢,我尝试此方法时得到了预期的结果,但如果我尝试在其他方法中使用此.owner\u id,则未定义。在其他方法中使用owner\u id之前,您需要检查是否为null/未定义。原因是您的db调用是一个异步函数。我的代码之所以有效,是因为console.log在.then()中。