Javascript 使用Firebase转换匿名用户:无法读取属性';getAuthResponse';未定义的

Javascript 使用Firebase转换匿名用户:无法读取属性';getAuthResponse';未定义的,javascript,firebase,vue.js,firebase-authentication,Javascript,Firebase,Vue.js,Firebase Authentication,我正在使用VueJS和Firebase Auth(NPM-Version5.6.0)。我需要将一个匿名用户转换为一个注册用户,并以谷歌为提供商。我试过: 按钮(使用VuetifyJS框架): CONVERT-使用谷歌登录 单击按钮后,控制台显示此错误: [Vue warn]:事件处理程序中的“单击”错误:“类型错误:无法” 读取未定义“”的属性“getAuthResponse” 您只需对匿名用户调用linkWithRedirect // Assuming you previously sign

我正在使用VueJS和Firebase Auth(NPM-Version5.6.0)。我需要将一个匿名用户转换为一个注册用户,并以谷歌为提供商。我试过:

按钮(使用VuetifyJS框架):

CONVERT-使用谷歌登录
单击按钮后,控制台显示此错误:

[Vue warn]:事件处理程序中的“单击”错误:“类型错误:无法” 读取未定义“”的属性“getAuthResponse”


您只需对匿名用户调用
linkWithRedirect

// Assuming you previously signed in anonymously.
firebase.auth().signInAnonymously().then(function(result) {
  var provider = new firebase.auth.GoogleAuthProvider();
  // Page will redirect to google and then back. You can get back
  // result via getRedirectResult().
  return firebase.auth().currentUser.linkWithRedirect(provider);
}).catch(function(error) {
  // Error occurred.
});

您只需对匿名用户调用
linkWithRedirect

// Assuming you previously signed in anonymously.
firebase.auth().signInAnonymously().then(function(result) {
  var provider = new firebase.auth.GoogleAuthProvider();
  // Page will redirect to google and then back. You can get back
  // result via getRedirectResult().
  return firebase.auth().currentUser.linkWithRedirect(provider);
}).catch(function(error) {
  // Error occurred.
});

“你如何设置Google用户?”RenaudTarnec问得好,也许Google Firebase官方文档遗漏了什么?我的意思是,如何在
匿名登录
函数中获取
谷歌用户
的值?要么将其存储在Vue.js组件中,然后执行类似于
this.googleUser
的操作,要么将其存储在Vuex存储中,要么将其作为函数的参数传递。但目前它似乎尚未初始化,因此当您执行
googleUser.getAuthResponse()
如何设置googleUser时会出现错误?@RenaudTarnec问得好,也许官方的Google Firebase文档遗漏了什么?我的意思是,如何在
匿名登录
函数中获取
谷歌用户
的值?要么将其存储在Vue.js组件中,然后执行类似于
this.googleUser
的操作,要么将其存储在Vuex存储中,要么将其作为函数的参数传递。但目前它似乎尚未初始化,因此当您执行
googleUser.getAuthResponse()
时会出现错误。它可以工作,但我很难通过getRedirectResult()获得结果。这是我的代码:(很抱歉链接太长,无法发表评论)非常感谢您的帮助。您可以随时调用getRedirectResult。这将最终解决。如果
result.user
为空,则没有挂起的登录操作。然后可以开始链接过程。否则,用户将使用重定向完成登录。然后,您可以重定向到您的登录页面。它可以工作,但我很难通过getRedirectResult()获得结果。这是我的代码:(很抱歉链接太长,无法发表评论)非常感谢您的帮助。您可以随时调用getRedirectResult。这将最终解决。如果
result.user
为空,则没有挂起的登录操作。然后可以开始链接过程。否则,用户将使用重定向完成登录。然后可以重定向到登录页面。
// Assuming you previously signed in anonymously.
firebase.auth().signInAnonymously().then(function(result) {
  var provider = new firebase.auth.GoogleAuthProvider();
  // Page will redirect to google and then back. You can get back
  // result via getRedirectResult().
  return firebase.auth().currentUser.linkWithRedirect(provider);
}).catch(function(error) {
  // Error occurred.
});