есть ли способ синхронизировать версию Firebase Cordova с Firebase SDK для Web (или AngularFire2)?
О проблеме: я работаю над приложением Ionic, которое аутентифицируется с помощью Firebase. Я использую PhoneAuth в качестве своего провайдера входа. К сожалению, есть проблемы с reCAPTCHA в веб-версии Firebase, потому что он может обрабатывать reCAPTCHA только через HTTP / HTTPS, а Ionic / Cordova строит все через FILE: //. Теперь есть плагин Ionic / Cordova, который позволяет этот процесс, но он не передает экземпляр в Firebase Web-SDK или AngularFire2.
Я использую этот плагин cordova: https://ionicframework.com/docs/native/firebase-authentication
и попробовал этот урок: https://www.youtube.com/watch?v=R906OGFurJg
import {Injectable} from '@angular/core';
import {FirebaseAuthentication} from '@ionic-native/firebase-authentication/ngx';
import {Router} from '@angular/router';
import * as firebase from "firebase/app";
export class FirebaseAuthService {
firebaseAuthentication: FirebaseAuthentication;
verificationID = "";
constructor(firebaseAuthentication: FirebaseAuthentication, private router: Router) {
this.firebaseAuthentication = firebaseAuthentication;
}
async phoneAuth() {
await this.firebaseAuthentication.verifyPhoneNumber("+491515555555", 120000).then((verificationID) => {
this.verificationID = verificationID;
console.log("WelcomeScreen VerificationID: ", this.verificationID);
}).catch((error) => {
console.log(error);
});
}
async subscribeFirebase() {
await this.firebaseAuthentication.onAuthStateChanged().subscribe(async (user) => {
if (user) {
let token = "";
await this.firebaseAuthentication.getIdToken(false).then(value => {
token = value;
}).catch(e => {
console.log(e);
});
//This doesn't work.
await firebase.auth().signInWithCustomToken(token).catch(function (error) {
console.log(error.code, error.message)
});
//let user = firebase.auth().currentUser;
//user.reauthenticateWithCredential(token).then();
this.router.navigate(['menu']).then();
} else {
console.log("AuthService: ", "User not logged in");
}
})
}
}
Поэтому я хотел бы знать, можно ли переслать экземпляр (с помощью токена или учетных данных). Путь через собственный плагин через разработку под iOS или Android также будет приемлемым.