Ioni c Firebase Аутентификация на устройстве - PullRequest
2 голосов
/ 08 января 2020

I sh для использования аутентификации Firebase. Я использую FirebaseUI- Angular и все работает хорошо в браузере. Однако логины в социальных сетях не работают на устройстве. Когда я нажимаю кнопку входа в систему с помощью Google, открывается браузер устройства и ... ничего не происходит.

Итак, мой вопрос: существует ли РАБОЧИЙ подход к работе Firebase Authentication на устройстве с использованием Ioni c?

1 Ответ

0 голосов
/ 08 января 2020

Я не знаком с FirebaseUI- Angular. Похоже, что он создан для поддержки веб-приложений. Ioni c требует подключаемых модулей Cordova для Facebook и возможности входа в Google. Эти плагины могут работать с Аутентификацией Firebase.

У меня есть репозиторий ioni c -firebase-auth-starter , который использует Firebase для аутентификации. В него не встроен вход через Facebook или Google, но он обеспечивает рабочий подход, чтобы заставить Firebase Authentication работать на устройстве с использованием Ioni c.

Если вы решили клонировать мой проект ... Следуйте инструкциям Шаг 1 и шаг 2 веб-настройки do c из Firebase. Затем скопируйте объект конфигурации для вашего веб-приложения с помощью этих инструкций и вставьте его в src \ environment \ environment.ts (заменив существующий объект конфигурации Firebase).

export const environment = {
   production: false,
   firebaseConfig: {
   apiKey: "AXXXXXBILN60aW-XXXXXXXXIZWeHkMDUVT-AQ7Y",
   authDomain: "fir-auth-test-XXXXX.firebaseapp.com",
   databaseURL: "https://fir-auth-test-XXXXX.firebaseio.com",
   projectId: "fir-auth-test-XXXXX",
   storageBucket: "fir-auth-test-XXXXX.appspot.com",
   messagingSenderId: "106XXXXXXX396",
   appId: "1:106XXXX87396:web:d384fXXXXXXXXd647bed31",
   measurementId: "G-XNXXXXXXB0"
  }

Как только вы получите Настройка аутентификации электронной почты в Firebase, вы можете следовать этому руководству, чтобы настроить приложение Facebook и зарегистрировать его в приложении Ioni c с помощью плагина Cordova.

Как только вы правильно настроите плагин Facebook Вы можете использовать его для входа в Firebase. Ваш код будет выглядеть примерно так, как показано в примере ниже (Примечание: это не весь класс AuthenticationService, а только код, указанный в Facebook c):

import { AngularFireAuth } from "@angular/fire/auth";
import { AngularFireDatabase, AngularFireObject } from "@angular/fire/database";
import * as firebase from "firebase/app";

import { Facebook, FacebookLoginResponse } from "@ionic-native/facebook/ngx";

@Injectable({
  providedIn: "root"
})
export class AuthenticationService {
  constructor(private afAuth: AngularFireAuth, private facebook: Facebook) {}

  loginWithFacebook(): void {
    this.facebook
      .login(["public_profile", "email"])
      .then(
        (res: FacebookLoginResponse) => {
          const facebookCredential_1 = firebase.auth.FacebookAuthProvider.credential(
            res.authResponse.accessToken
          );
          this.loginWithFirebase(facebookCredential_1).then(
            console.log('success');
          );
        },
        error => {
          console.log( JSON.stringify(error));
        }
      )
      .catch(error_1 => {
        console.log("Error ", error_1);
      });
   }

   async loginWithFirebase(credential: firebase.auth.AuthCredential) {
     return firebase.auth()
       .signInAndRetrieveDataWithCredential(credential)
       .then(response => {
          return response;
     })
    .catch(error => {
      console.log(JSON.stringify(error));
    });
}

Надеюсь, это поможет

...