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身份验证?
答案 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