Firebase + Javascript Конвертировать анонимную учетную запись в постоянную - Ошибка: ответ не определен

59
6

Я пытаюсь создать сайт, на котором пользователь может сначала войти анонимно с использованием 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>

спросил(а) 2017-08-18T06:55:00+03:00 3 года, 3 месяца назад
1
Решение
58

хорошо, я нашел решение. По-видимому, для перехода от анонимного пользователя к пользователю facebook вам нужно найти токен самостоятельно. Я нашел это решение.

 var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().currentUser.linkWithPopup(provider)

ответил(а) 2017-08-18T09:56:00+03:00 3 года, 3 месяца назад
41

Я думаю, что response здесь относится к событию, которое Facebook-логин переходит на обратный вызов. Facebook традиционно называет этот response, но наш пример Github называет его 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

ответил(а) 2017-08-18T07:22:00+03:00 3 года, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема