Java android google登录后如何初始化firebase?
我想尽量减少我的原生android firebase开发,这样当我准备好移植到IOS/web时,我就不会在那里做太多了 目前firebase的Javascript不允许谷歌从Android登录,这可以从插件中解决。但我一直坚持的是如何基于Java Android谷歌登录初始化firebase 这就是我想要实现的目标: Cordova将Java Android本机登录调用到google--->基于此,我将如何初始化firebase 这个插件可以让我以本机方式登录谷歌: 但我想我需要授权令牌?令牌IDJava android google登录后如何初始化firebase?,java,android,cordova,firebase,firebase-authentication,Java,Android,Cordova,Firebase,Firebase Authentication,我想尽量减少我的原生android firebase开发,这样当我准备好移植到IOS/web时,我就不会在那里做太多了 目前firebase的Javascript不允许谷歌从Android登录,这可以从插件中解决。但我一直坚持的是如何基于Java Android谷歌登录初始化firebase 这就是我想要实现的目标: Cordova将Java Android本机登录调用到google--->基于此,我将如何初始化firebase 这个插件可以让我以本机方式登录谷歌: 但我想我需要授权令牌?令牌I
firebase.auth().signInWithCredential(credential).catch(function(error) {
} else {
console.error(error);
}
});
这能给我上面要求的托克吗
更新1:只想分享更多信息。当让用户在android上通过谷歌登录时,我有以下对象
GoogleSignInAccount
它有公共字符串getIdToken()
和公共字符串getServerAuthCode()
为什么不能使用JS对firebase进行身份验证
更新2:法拉兹提供的答案似乎有效。以下是带凭证的功能登录的参考
谢谢您的帮助。您可以阅读有关Firebase使用的信息
你可以找到-
mFirebaseRef.authWithOAuthToken("google", token, new AuthResultHandler("google"));
这(如果一切都成功)需要
authenticated(authdataauthdata)上的公共void
其中token
是您的getIdToken
我的意思是,在任何情况下,都可以使用谷歌、Facebook、Twitter登录Firebase,您必须将收到的令牌发送到Firebase服务器,该服务器会检查您的令牌是否已登录。您可以用同样的方法设置自己的服务器。使用GoogleAuthProvider
凭据使用auth.signwithcredential
以下是一个例子:
auth.signInWithCredential(firebase.auth.GoogleAuthProvider.credential(googleAccessToken)).then(function(user) {
// Google User is logged in
}).catch(function(error) {
// Error
});
谷歌登录后,您必须将auth.signiWithCredential与GoogleAuthProvider凭据一起使用:
下面是一个代码:
private void firebaseAuthWithGoogle(谷歌登录账号){
Log.d(标记为“firebaseAuthWithGoogle:+account.getId());
最终字符串名称=account.getDisplayName();
最终字符串email=account.getEmail();
AuthCredential credential=GoogleAuthProvider.getCredential(account.getIdToken(),null);
getAuth().signInWithCredential(凭证)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
Log.d(标记“onComplete:使用凭据登录”+task.issusccessful());
if(task.i
在此处输入代码ssucessful()){
Log.e(标记“成功:使用凭据登录”);
}
如果(!task.issusccessful()){
Log.e(标记“onComplete:使用凭据登录”+task.getException());
}
}
});
}
OP特别要求使用Javascript解决方案,而不是Java解决方案。
auth.signInWithCredential(firebase.auth.GoogleAuthProvider.credential(googleAccessToken)).then(function(user) {
// Google User is logged in
}).catch(function(error) {
// Error
});