Плагины Ionic Google-Plus и Firebase-Authentication не работают при совместном использовании - PullRequest
0 голосов
/ 23 мая 2019

Плагины Ionic (cordova) google-plus и firebase-authentication не работают при совместном использовании.

Я пытаюсь использовать плагины google-plus и firebase-authentication от Ionic для аутентификации пользователей в firebase. Плагин Google-Plus работает независимо, и я получаю idToken и accessToken. Когда я добавил плагин firebase-authentication и запустил сборку, ничего не произошло. Нет ответа от плагина Google Plus, а также нет ошибки.

Ниже приведена информация об ионике ...

ionic (Ionic CLI): 4.1.0 (/home/chandra/.npm-global/lib/node_modules/ionic) Ionic Framework: ионно-угловой 3.9.5 @ ionic / app-scripts: 3.2.2

кордова (Cordova CLI): 9.0.0 (cordova-lib@9.0.1) Платформы Cordova: Android 7.1.1 Плагины Cordova: cordova-plugin-ionic-клавиатура 2.1.3, cordova-plugin-ionic-webview 4.0.1, (и 8 других плагинов)

Инструменты Android SDK: 26.1.1 NodeJS: v8.10.0 (/ usr / bin / node) нпм: 6.4.0 ОС: Linux 4.15

Ниже приведена функция, которая вызывается при нажатии кнопки «Войти в Google».

googlePlusLogin() {
  console.log("Trying to do Gooogle sign-in ....");
  this.gplus.login({ webClientId:  "xxx.apps.googleusercontent.com" })
  .then(res => {
    console.log("Google response: ", res);
    signinCallback(res);
  })
  .catch(err => console.error(err));

  let me = this;
  function signinCallback(authResult) {
    let res = me.firebaseAuth.signInWithGoogle(
      authResult.idToken,
      authResult.accessToken
    );
    console.log("Firebase Auth Result: ", res);
  }
}

Я собираюсь передать idToken и accessToken, предоставляемые плагином google-plus, плагину firebase-authentication, чтобы firebase выполнял аутентификацию.

1 Ответ

0 голосов
/ 24 мая 2019

Зачем вам использовать отдельный плагин для Google Plus (это просто логин Google)?Я использую плагин Firebase, и аутентификация Google только обрабатывается этим фрагментом кода

import * as firebase from 'firebase';

...

googleLogin()
{
    const provider = new firebase.auth.GoogleAuthProvider();
    return this.afAuth.auth.signInWithPopup(provider).then((result) => {
        var uid = result.user.uid
        var name = result.user.displayName
        var email = result.user.email
        var photoURL = result.user.photoURL
        this.linkUser(uid, email, name, photoURL)
    })
}
...