как получать и обрабатывать ошибки перенаправления с помощью Firebase Auth?

Я разрабатываю первое мобильное приложение, используя Firebase Auth. Firebase рекомендует перенаправить вместо всплывающего окна. Однако я не могу найти ни одного примера получения ошибок при использовании поставщиков Oauth (facebook, Google). В Firebase есть пример обработки ошибки в SignwithPopup , но перед перенаправлением в нем указано только:

Эта ошибка обрабатывается аналогичным образом в режиме перенаправления, с той разницей, что ожидающие учетные данные должны кэшироваться между перенаправлениями страниц (например, с использованием хранилища сеансов).


comment
Вы пробовали что-нибудь? Если да: покажите минимальный код того, где вы застряли.   -  person Frank van Puffelen    schedule 10.09.2016
comment
Для вдохновения: github.com/firebase/quickstart-js /blob/мастер/аутентификация/   -  person Frank van Puffelen    schedule 10.09.2016


Ответы (1)


Мы показываем, где выполнять обработку ошибок для операции перенаправления, в предыдущем разделе того же документа: просто найдите «firebase.auth().getRedirectResult()» в эту страницу, а именно catch здесь:

firebase.auth().getRedirectResult().then(function(result) {
  if (result.credential) {
    // This gives you a Google Access Token. You can use it to access the Google API.
    var token = result.credential.accessToken;
    // ...
  }
  // The signed-in user info.
  var user = result.user;
}).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // The email of the user's account used.
  var email = error.email;
  // The firebase.auth.AuthCredential type that was used.
  var credential = error.credential;
  // ...
});

Кстати, добавление нескольких провайдеров аутентификации и идеальная обработка связывания учетных записей на самом деле довольно сложны, потому что необходимо учитывать множество подпотоков (например, что, если пользователь хочет связать, но затем входит в учетную запись, где электронные письма не совпадают ...). Я рекомендую вам использовать интерфейс Firebase, который предоставляет настраиваемый компонент пользовательского интерфейса, который будет обрабатывать все эти сложные потоки для вас. .

person Nicolas Garnier    schedule 10.09.2016