2017-10-31 1 views
1

내 애플리케이션에 Firebase 인증 (Ionic, Angular5 및 Cordova)을 구현하고 브라우저에서 테스트했는데 모든 것이 정상적으로 작동합니다. 나는 구글이나 페이스 북을 사용하여 로그인 할 수있다. 파이어 스토어 데이터베이스에 데이터를 넣을 수 있습니다.Cordova 및 Ionic Firebase Auth signInWithPopup으로 각도가 모바일 기기에서 오류 발생

private oAuthLogin(provider) { 
return this.afAuth.auth.signInWithPopup(provider) 
    .then((credential) => { 
    this.updateUserData(credential.user) 
    }) 
} 

signInWithPopup :

오류가 보인다
{code: "auth/operation-not-supported-in-this-environment", message: "This operation is not supported in the environment…"} 

에서 오는 될 :

는 그러나 한 번 내 경우에는, 모바일 장치에서 나는 다음과 같은 오류를 받고 있어요 안드로이드 장치를 배치 오류가 사라진 signInWithRedirect로 대체됩니다. 그러나 이것은 내가 필요한 것이 아닙니다. 로그인 프로세스를 수행하기 위해 사용자가 로그인 한 후 응용 프로그램에서 브라우저로 리디렉션하지 않는 팝업을 열 수 있어야합니다.

그럴 수 있습니까?

내가 사용하고 정보를 원하시면 당신에게

감사 (I 시장 응용 프로그램은 소셜 미디어가 아닌 리디렉션을 사용하여 인증을 위해 팝업을 열어 참조) : 각도 4.4.4, AngularFire5, 코르도바와 이온 3 (모든 최신 버전)

+0

왜 앵귤러 5 (RC)를 사용하고 있습니까? Ionic3은 현재 Angular 4.4.4에 대한 피어 종속성을 가지고 있습니다. – David

+0

AngularFire가 실제로 5 RC 인 동안 죄송합니다. Angle 4.4.4를 실제로 사용하고 있습니다. – JamesAnd

+0

모바일 앱에서 팝업을 어떻게 열 예정입니까? Cordova/Ionic 기능의 'signInWithRedirect'는 팝업과 같습니다. 흐름을 시작하면 크롬 맞춤 탭 또는 SFSafariViewController 등이 열립니다. 그러면 앱이 실행중인 Cordova 웹보기가 닫히고 표시됩니다. – bojeil

답변

0

확인이 signInWithPopup() 방법에 대한 firebase documentation에 따라 오류가 의미 다음은 이온을 사용하는 것처럼

auth/operation-not-supported-in-this-environment: Thrown if this operation is not supported in the environment your application is running on. location.protocol must be http or https.

파일이 안드로이드에 file:// 프로토콜을 통해 제공되며, iOS의 로컬 웹 서버 (localhost://)를 통해 location.protocol을 의미하는 경우 라이브러리의 요구 사항을 충족하지 못합니다.

github issue에는 Ionic/Cordova 앱에서 이러한 제한을 해결하는 방법에 대한 많은 제안이 포함되어 있습니다. 그들 중 하나가 당신을 위해 일하기를 바랍니다!

+0

그래도 github 문제를 확인했지만 Redirect Method를 사용하는 것이 좋습니다 ... 검색 나는 유일한 해결책은이 접근법을 떨어 뜨리고 https://github.com/EddyVerbruggen/cordova-plugin-googleplus와 같은 네이티브 플러그인을 사용하는 것이라고 생각합니다. 누구든지 내 질문에 관심이 있다면 내가 갈 해결책입니다. – JamesAnd

+0

firebase 웹 SDK는이를 지원하지 않으므로 네이티브 솔루션이 가장 좋은 접근 방법 일 것입니다. – David