Я не знаком с 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));
});
}
Надеюсь, это поможет