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

Nom*_*man 15 java android cordova firebase firebase-authentication

我想尝试将我的原生android firebase开发保持在最低限度,以便当我准备移植到IOS/web时,我不会在那里做很多事情.

现在firebase的Javascript不允许从Android登录谷歌,这可以从插件中处理.但我坚持的是如何基于Java Android Google登录初始化firebase.

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

Cordova将Java-Android-Native登录称为google --->基于此,我将如何初始化firebase?

这个插件可以让我本地登录google:https://www.npmjs.com/package/cordova-plugin-googleplus

但我想我需要身份验证令牌?令牌ID?

firebase.auth().signInWithCredential(credential).catch(function(error) {
  } else {
    console.error(error);
  }
 });
Run Code Online (Sandbox Code Playgroud)

这可以给我上面要求的东西吗?https://developers.google.com/identity/sign-in/android/sign-in

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
Run Code Online (Sandbox Code Playgroud)

更新1:只想分享更多信息.当用户在Android上通过谷歌登录时,我有以下对象

GoogleSignInAccount
Run Code Online (Sandbox Code Playgroud)

https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInAccount

它有public String getIdToken ()&public String getServerAuthCode ()为什么不能用这些来使用JS来验证firebase?

更新2:Faraz提供的答案似乎正在起作用.以下是功能https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithCredential的参考资料signInWithCredential

谢谢您的帮助.

Far*_*raz 5

auth.signInWithCredentialGoogleAuthProvider凭证一起使用。

这是一个例子:

auth.signInWithCredential(firebase.auth.GoogleAuthProvider.credential(googleAccessToken)).then(function(user) {
  // Google User is logged in
}).catch(function(error) {
  // Error
});
Run Code Online (Sandbox Code Playgroud)

更多信息来源