Как связать несколько поставщиков Auth с учетной записью Firebase?
Я не могу успешно сделать, я выполнил следующие шаги, как указано в документах Firebase:
- подписан в использовании с помощью существующего поставщика auth (мой случай:facebook).
- завершите поток входа для нового поставщика аутентификации до, но не включая, вызова одного из
Auth.signInWith
методы.(мой случай: я хочу связать электронную почту & пароль и Google OAUth). Итак, это шаг, о котором я не знаю, я создал новый провайдер, использующийvar provider = new firebase.auth.GoogleAuthProvider();
а я не сделалFirebase.auth().signInWithPopup(provider)
. - затем, чтобы получить authcredential для google, я запускаю
var credential = firebase.auth.GoogleAuthProvider.credential( googleUser.getAuthResponse().id_token);
(Я получаю неопределенную ошибку googleUser) эта ошибка кажется уместной, так как я не вошел в систему с помощью Google Oauth, но это то, что говорится в 2-х шагах(не для входа) - и затем эта команда для связи с текущим пользователем, который находится на провайдере Facebook
auth.currentUser.link(credential)
Я понимаю, что currentUser должен быть связан моему существующему провайдеру (Facebook). Похоже, что переменная учетных данных для google никогда не вычисляется. Любой, у кого есть пример функционального кода, действительно поможет.
1 ответов
Если вы хотите вручную связать учетную запись google и email/pass с существующим пользователем firebase только на facebook, вы можете сделать следующее: Сначала пользователь должен войти в facebook. Ссылка на пользователя google:
var provider = new firebase.auth.GoogleAuthProvider();
auth.currentUser.linkWithPopup(provider);
затем свяжите учетную запись email / pass:
auth.currentUser.linkWithCredential(firebase.auth.EmailAuthProvider.credential(auth.currentUser.email, 'password'))
все эти связанные учетные записи должны быть новыми и еще не связанными.