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

我想尝试将我的原生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

但我想我需要身份validation令牌? 令牌ID?

firebase.auth().signInWithCredential(credential).catch(function(error) { } else { console.error(error); } }); 

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

 GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 

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

 GoogleSignInAccount 

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

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

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

感谢您的帮助。

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

auth.signInWithCredentialGoogleAuthProvider凭据一起使用。

这是一个例子:

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

来源获取更多信息

您可以阅读有关Firebase使用情况的GitHub示例 。

在这里你可以find –

 mFirebaseRef.authWithOAuthToken("google", token, new AuthResultHandler("google")); 

哪个(如果一切都成功)调用此 public void onAuthenticated(AuthData authData)

token是你的getIdToken我的意思是你可以使用Google,Facebook,Twitter登录Firebase,在任何情况下都必须将你收到的令牌发送到Firebase服务器,该服务器会检查你的令牌是否已经登录。 您可以以相同的方式设置自己的服务器。

在google登录后,您必须使用auth.signInWithCredential和GoogleAuthProvider凭据:

这是一个代码:

private void firebaseAuthWithGoogle(GoogleSignInAccount account) { Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId()); final String name = account.getDisplayName(); final String email = account.getEmail(); AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null); getAuth().signInWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { Log.d(TAG, "onComplete: sign in with credentials " + task.isSuccessful()); if (task.i private void firebaseAuthWithGoogle(GoogleSignInAccount account) { Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId()); final String name = account.getDisplayName(); final String email = account.getEmail(); AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null); getAuth().signInWithCredential(credential) .addOnCompleteListener(this, new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { Log.d(TAG, "onComplete: sign in with credentials " + task.isSuccessful()); if (task.i在此处输入代码sSuccessful()) { Log.e(TAG, "success: sign in with credentials "); } if (!task.isSuccessful()) { Log.e(TAG, "onComplete: sign in with credentials " + task.getException()); } } }); } sSuccessful()) { Log.e(TAG, "success: sign in with credentials "); } if (!task.isSuccessful()) { Log.e(TAG, "onComplete: sign in with credentials " + task.getException()); } } }); }