如何在安卓谷歌登录后初始化火库?

我想尝试将我的原生Android firebase开发保持在最低限度,这样当我准备移植到IOS / Web时,我不会在那里做很多事情。

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

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

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

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

但我想我需要身份验证令牌吗?令牌 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

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

更新2:Faraz提供的答案似乎有效。以下是函数 https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithCredentialsignInWithCredential

感谢您的帮助。


答案 1

与凭据一起使用。auth.signInWithCredentialGoogleAuthProvider

下面是一个示例:

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

更多信息的来源


答案 2

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

在这里你可以找到 -

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

这(如果一切都成功了)称之为 public void onAuthenticated(AuthData authData)

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


推荐