Comment initialiser firebase après la connexion à Google avec Android?

Je voulais essayer de limiter au minimum le développement de ma base de feu Android native afin de ne pas en faire beaucoup quand je serai prêt à porter sur IOS / Web.

Pour le moment, le Javascript de firebase n’autorise pas la connexion à Google depuis Android, cela peut être pris en charge depuis le plugin. Mais je ne sais pas trop comment initialiser Firebase à partir du login Java Android Google.

Donc, voici ce que j’essaie de réaliser:

Cordova appelle la connexion Java-Android-Native à Google —> sur cette base, comment initialiser Firebase?

Ce plugin peut me permettre de me connecter à Google de manière native: https://www.npmjs.com/package/cordova-plugin-googleplus

Mais je suppose que j’ai besoin de jeton d’authentification? identifiant de jeton?

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

Cela peut-il me donner le toke requirejs ci-dessus? https://developers.google.com/identity/sign-in/android/sign-in

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

Mise à jour 1: Je veux juste partager plus d’informations. Lors de la connexion de l’utilisateur via Google sur Android, j’ai l’object ci-dessous.

 GoogleSignInAccount 

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

Il a public Ssortingng getIdToken () & public Ssortingng getServerAuthCode () Pourquoi ne peut-on pas les utiliser pour authentifier Firebase à l’aide de JS?

Mise à jour 2: La réponse fournie par Faraz semble fonctionner. Voici une référence pour la fonction signInWithCredential https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithCredential

Merci de votre aide.

Utilisez auth.signInWithCredential avec les GoogleAuthProvider identification GoogleAuthProvider .

Voici un exemple:

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

Source pour plus d’informations

Vous pouvez lire cet exemple de GitHub sur l’utilisation de Firebase.

Et ici vous pouvez trouver –

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

Qui (si tout est réussi) appelle ce public void onAuthenticated(AuthData authData)

getIdToken est votre getIdToken Il est possible de vous connecter à Firebase en utilisant Google, Facebook ou Twitter. Dans tous les cas, vous devez envoyer le jeton que vous recevez au serveur Firebase qui vérifie si vous êtes déjà connecté ou non. Vous pouvez configurer votre propre serveur de la même manière.

Après la connexion à Google, vous devez utiliser auth.signInWithCredential avec les informations d’identification GoogleAuthProvider:

Voici un code:

private void firebaseAuthWithGoogle(GoogleSignInAccount account) { Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId()); final Ssortingng name = account.getDisplayName(); final Ssortingng 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 Ssortingng name = account.getDisplayName(); final Ssortingng 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 entrer le code ici 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()); } } }); }