Java android google登录后如何初始化firebase?

Java 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

我想尽量减少我的原生android firebase开发,这样当我准备好移植到IOS/web时,我就不会在那里做太多了

目前firebase的Javascript不允许谷歌从Android登录,这可以从插件中解决。但我一直坚持的是如何基于Java Android谷歌登录初始化firebase

这就是我想要实现的目标:

Cordova将Java Android本机登录调用到google--->基于此,我将如何初始化firebase

这个插件可以让我以本机方式登录谷歌:

但我想我需要授权令牌?令牌ID

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
});