Firebase + Ionic3错误:disallowed_useragent

时间:2017-11-11 12:30:29

标签: angular firebase firebase-authentication ionic3 angularfire2

this topic还有其他几个问题/答案,但他们没有将Firebase与Ionic一起使用。我刚刚切换到新的Ionic View,现在,我的应用程序在旧的Ionic View中工作,而新的Ionic View给出了这个众所周知的错误:

  

403错误 - 这是一个错误。错误:disallowed_useragent他的用户代理   不允许向Google发出OAuth授权请求   它被归类为嵌入式用户代理(也称为Web视图)。   blah blah blah

在我的代码中,我注入Firebase AuthProvider并使用angularfire2进行连接,它看起来像

  private getProvider(from: string): AuthProvider {
  switch (from) {
    case 'twitter': return new firebase.auth.TwitterAuthProvider();
    case 'facebook': return new firebase.auth.FacebookAuthProvider();
    case 'github': return new firebase.auth.GithubAuthProvider();
    case 'google': return new firebase.auth.GoogleAuthProvider();
  }
}

  signIn(from: string) {
    this.afAuth.auth.signInWithPopup(this.getProvider(from))
. . .

同样,这在浏览器或旧的Ionic中很有用,但不适用于新的Ionic View。我确实有一个相当大的库与一般OAuth连接,但我认为使用Firebase的一个重要原因是我们不再需要使用这些库并自己管理用户。

有没有办法通过Ionic在iOS / Android应用上进行Firebase身份验证?

3 个答案:

答案 0 :(得分:1)

尝试

ionic cordova build android --minifycss --optimizejs --minifyjs

为我解决

答案 1 :(得分:1)

您应遵循this article中的说明。我认为不支持signInWithPopup方法,而应该尝试使用signInWithRedirect

我通过在disallowed_useragent中添加以下内容来解决了config.xml错误:

<preference name="OverrideUserAgent" value="Mozilla/5.0 Google" />

答案 2 :(得分:0)

我强烈建议您在真实设备上运行此功能,因为Ionic视图应用程序在本机插件等方面存在很多问题。

CLI

ionic cordova run android --prod --device

ionic cordova run ios --prod --device