Как смешивать собственные SDK и JS firebase для обработки аутентификации по номеру телефона - PullRequest
0 голосов
/ 19 июня 2020

Я вижу, что для аутентификации широко используется смешивание собственных и веб-SDK. Это позволяет гибридным приложениям продолжать использовать нашу любимую структуру JS, например. Angular с AngularFire и получите собственный UX при входе в систему с помощью приложения Facebook или с помощью InstantVerification с аутентификацией по телефону в качестве примеров.

Процесс аутентификации прост: получите учетные данные через собственные плагины и signInWithCredential в js SDK. Например, для авторизации по номеру телефона:

const response = await FirebaseXNativePlugin.verifyPhoneNumber(phone, this.timeOutDuration)
...
const credential = firebase.auth.PhoneAuthProvider.credential(response.verificationId, confirmationCode); // confirmationCode is retrieved prompting user
this.angularFireAuth.auth.signInWithCredential(credential);

Для авторизации через Facebook:

const response = await FacebookNativePlugin.login(["public_profile", "email"]);
const credential = firebase.auth.FacebookAuthProvider.credential(response.authResponse.accessToken);
this.angularFireAuth.auth.signInWithCredential(credential);

НО, когда мы используем номер телефона, возникает исключение с Android «мгновенная проверка» и « автозапуск ". В этих случаях плагин Firebase-X Cordova возвращает ссылку id на собственный объект аутентификации , поэтому он недоступен для signInWithCredential из JS SDK. Дэйв Олден, который поддерживал плагин Firebase-X Cordova, дал хорошо объясненный ответ. объекты, которые нельзя надежно разобрать на примитивные типы, которые можно свободно передавать между JS и собственными уровнями в гибридном приложении Cordova

Итак, мои вопросы:

  • Кто угодно может подтвердить, что нет возможности смешивать нативную и веб-аутентификацию для полной обработки аутентификации телефона. ?
  • Может ли это быть запрос / правило функции firebase, разрешающее «межуровневую аутентификацию» ? (получение учетных данных с помощью собственного плагина и вход с помощью JS SDK)

PS: Если вы входите в систему с помощью собственного плагина, он работает нормально, но больше не может использовать angularFire ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...