Firebase + Javascript将匿名帐户转换为永久帐户 - 错误:未定义响应

时间:2017-08-18 03:55:02

标签: javascript firebase firebase-authentication facebook-login

我正在尝试构建一个网站,用户可以首先使用firebase匿名登录,然后通过登录Facebook将其帐户转换为永久帐户。我按照https://firebase.google.com/docs/auth/web/anonymous-auth提供的说明操作,但我收到以下错误"未捕获的ReferenceError:未定义响应"。我还尝试使用Google登录转换帐户,但后来我收到错误" googleUser未定义"。我做错了什么?

这是我的代码: -

  <html>
  <body>
    <button onclick = "anonymousLogin()">Anonymous Signin</butto>
    <button onclick = "facebookSignin()">Facebook Signin</button>
    <button onclick = "facebookSignout()">Facebook Signout</button>
  </body>


 <script>
    function anonymousLogin(){
          firebase.auth().signInAnonymously().catch(function(error) {
            // Handle Errors here.
            var errorCode = error.code; console.log(errorCode)
            var errorMessage = error.message; console.log(errorMessage)
          });
     }

    function facebookSignin() {
     var provider = new firebase.auth.FacebookAuthProvider();

     var credential = firebase.auth.FacebookAuthProvider.credential(
        response.authResponse.accessToken);

     auth.currentUser.link(credential).then(function(user) {
       console.log("Anonymous account successfully upgraded", user);
      }, function(error) {
      console.log("Error upgrading anonymous account", error);
     });
    }

  </script>
</html>

2 个答案:

答案 0 :(得分:1)

好吧我找到了解决方案。显然从匿名转换为Facebook用户需要您自己找到令牌。我发现了这个解决方法。

for (int i = 0; i < A.size(); i++)
{
    if ( dict[i] == true )
    {
        std::cout << "Prime number: << A[i] << std::endl;
    }
}

答案 1 :(得分:0)

我认为此处response指的是Facebook登录传递给回调的事件。 Facebook traditionally calls this response,但our Github sample将其称为events。当然这个名字并不重要,但是你没有为你的回调声明它。

function facebookSignin(response) {
 var provider = new firebase.auth.FacebookAuthProvider();

 var credential = firebase.auth.FacebookAuthProvider.credential(
    response.authResponse.accessToken);

另见https://github.com/firebase/quickstart-js/blob/master/auth/facebook-credentials.html#L81