Использование Nuxt Firebase oauth не может вернуть учетные данные в гибридном приложении Cordova - PullRequest
0 голосов
/ 19 марта 2020

Я использую Firebase oauth в своем проекте Nuxt SPA и использую пакет Cordova для andriod APK.

Я использую функции signInWithRedirect и getRedirectResult для завершения аутентификации Google / Facebook. Я записываю эту функцию в событие onDeviceReady в файле плагина Nuxt, затем inject эту функцию, чтобы я мог использовать ее в Nuxt page component, например:

import Vue from 'vue'
import firebase from 'firebase'

export default (ctx, inject) => {
  const { app } = ctx

  const cordovaApp = {

    initialize() {
      document.addEventListener(
        'deviceready',
        this.onDeviceReady.bind(this),
        false
      )
    },

    onDeviceReady() {
      const firebaseConfig = {
        apiKey: 'AIzaSyDTT9mOxowjih5EiIStCH8nbh_7PXjRUII',
        authDomain: 'matchapp-efb87.firebaseapp.com',
        databaseURL: 'https://matchapp-efb87.firebaseio.com',
        projectId: 'matchapp-efb87',
        storageBucket: 'matchapp-efb87.appspot.com',
        messagingSenderId: '158183035375',
        appId: '1:158183035375:web:01ebdedf055d585eb4a61a',
        measurementId: 'G-P0SC3VC4PC'
      }

      if(!firebase.apps.length) {
        firebase.initializeApp(firebaseConfig)
      }

      inject('authGoogle', () => {
        const google = new firebase.auth.GoogleAuthProvider()
        firebase.auth().signInWithRedirect(google).then(() => {
          return firebase.auth().getRedirectResult()
        }).then(result => {
          alert(result)
        }).catch (err => {
          alert(result)
        })
      })

      inject('authGetResult', () => {
        firebase.auth().getRedirectResult().then(result => {
          alert(result)
        }).catch(err => {
          console.log(err)
        })
      })
    }
  }

  cordovaApp.initialize()
}

Событие аутентификации прошло успешно в браузере, но в приложении у него есть проблемы.

Когда я нажимаю кнопку входа в систему, Мое приложение переходит непосредственно на страницу входа в Google / Facebook, а затем я завершаю этап входа в систему и перенаправляем страницу в мое приложение, но я не получаю никаких результатов от Firebase , А также я не вижу аутентифицированных пользователей на консоли Firebase.

Может кто-нибудь помочь мне, пожалуйста. Я устал от этой ситуации.

...