Я посмотрел на эту проблему и был упомянут https://github.com/jestcastro/cordova-plugin-firebase. Я пытался установить плагины, но все равно это не сработало.
Я установил firebase и добавил конфигурацию в app.component.ts:
import * as firebase from 'firebase';
const config = {
apiKey:"" ,
authDomain: "",
databaseURL: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: ""
};
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.scss']
})
export class AppComponent {
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar
) {
this.initializeApp();
}
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
});
firebase.initializeApp(config);
}
}
В моей pageone.ts я отправка данных для проверки с помощью кнопки, используя ion select
для «кода страны» в качестве «this.selectedcode» и «ion-input
для остальной части« номера телефона ». затем я направляю на вторую страницу
send(){
const tell = this.numpad + this.selectedCode;
(<any> window).FirebasePlugin.verifyPhoneNumber(tell, 60, (credential) => {
console.log(credential);
this.verificationId = credential;
}, (error) => {
console.error(error);
alert(error);
});
this.router.navigateByUrl('/pagetwo/' + this.selectedCode + '/' + this.numpad);
}
В моем pagetwo.ts я добавляю капчу, а затем снова использую функцию отправки для другой кнопки, а затем проверяю, какая следует прочитать код подтверждения, а затем перенаправить на третью страницу, если он правильный
import * as firebase from 'firebase';
export class pagetwo {
code = '';
sub: any;
verificationId: any;
numpad: any;
selectedCode: any;
constructor(private activatedRoute: ActivatedRoute, private router: Router) {}
send(){
const tell = this.numpad + this.selectedCode;
(<any> window).FirebasePlugin.verifyPhoneNumber(tell, 60, (credential) => {
console.log(credential);
this.verificationId = credential.verificationId;
}, (error) => {
console.error(error);
alert(error);
});
}
ionViewDidLoad() {
this.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
}
verify() {
const signInCredential = firebase.auth.PhoneAuthProvider.credential(this.verificationId, this.code);
firebase.auth().signInWithCredential(signInCredential).then((info) => {
console.log(info);
this.router.navigateByUrl('/pagethree');
}, (error) => {
console.log(error);
});
}