我正在尝试使用Google身份验证来获取Firebase数据的书面许可。但是,虽然我相信我已经配置了大部分内容,但当我尝试连接到Google时,它无法正常工作,而且我不确定下一步要设置什么。
我页面上的登录功能:
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
...
constructor(public navCtrl: NavController, public navParams: NavParams, public AFAuth: AngularFireAuth) { }
...
login() {
this.AFAuth.auth.signInWithRedirect(new firebase.auth.GoogleAuthProvider())
.then(function(result) {
this.GoogleAccessToken = result.credential.accessToken; // This gives you a Google Access Token. You can use it to access the Google API.
this.GoogleUser = result.user; // The signed-in user info.
this.LoggedIn = true;
console.log('Logged In');
})
.catch(function(error) {
console.log('Error Logging In: ' + error)
}
);
}
我总是收到这个错误:
Error Logging In: Error: This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.
请注意,我的数据设置为只读,我的应用程序正确访问所有数据,因此我的AngularFire Firebase连接字符串正确。
我还验证了Firebase.apiKey和Firebase.authDomain都与Google API管理器中的设置相匹配。我的authDomain也在Browser key (auto created by Google Service)
上以HTTP referrers (web sites)
列为白色。
我已经从我的localhost尝试了这个,端口被列入白名单(开发机器),并将代码放在网站上进行测试,它也失败了。
所有引用均为http://xxxxx.domain.com,没有www,因为我们无法从www.domain.com访问我们的应用程序。
要删除参考设置作为可能的问题,我已将参考过滤器更改为无。但是,这会产生Error 401, deleted_client. The OAth client was deleted.
答案 0 :(得分:1)
您的浏览器API密钥必须有一些引荐来源限制。 在Google云端控制台中,转到您正在使用的浏览器密钥,通常标记为(由Google服务自动创建),并将“密钥限制”设置为“无”。