Как инициализировать firebase после входа в android google?

Я хотел попытаться сохранить свою собственную базовую базу для разработчиков Android до минимума, так что, когда я буду готов к отправке в IOS/web, я не буду делать много там.

В настоящий момент Jabber Javascript не позволяет войти в Google с Android, это можно позаботиться о плагине. Но я застрял в том, как инициализировать firebase на основе входа в систему Java Android Google.

Так вот что я пытаюсь достичь:

Кордова вызывает Java-Android-Native login в google --- > на основе этого, как бы инициализировать firebase?

Этот плагин позволяет мне войти в Google изначально: https://www.npmjs.com/package/cordova-plugin-googleplus

Но я думаю, мне нужен токен авторизации? идентификатор токена?

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

Может ли это дать мне вышеупомянутый требуемый toke? https://developers.google.com/identity/sign-in/android/sign-in

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

Обновление 1: просто хочу поделиться дополнительной информацией. При входе пользователя в систему через google на android у меня есть объект ниже

GoogleSignInAccount

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

Он имеет public String getIdToken () и public String getServerAuthCode (), почему они не могут использоваться для аутентификации firebase с использованием JS?

Обновление 2: Ответ, предоставленный Фаразом, кажется, работает. Вот ссылка для функции signInWithCredential https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signInWithCredential

Благодарим вас за помощь.

Ответы

Ответ 1

Используйте auth.signInWithCredential с учетными данными GoogleAuthProvider.

Вот пример:

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

Источник для дополнительной информации

Ответ 2

Вы можете прочитать этот пример GitHub об использовании Firebase.

И Здесь вы можете найти -

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

Какой (если все это успех) вызывает this public void onAuthenticated(AuthData authData)

Где token - ваш getIdToken Я имею в виду, что возможно войти в Firebase с помощью Google, Facebook, Twitter во всех случаях, когда вам нужно отправить токен, который вы получаете на сервер Firebase, который проверяет ваш токен, вы уже вошли в систему или нет. Вы можете настроить свой собственный сервер таким же образом.

Ответ 3

После входа в 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<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> 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()); } } }); }