Я разрабатываю приложение Ionic 4, которое должно сканировать и проверять QR-код для подачи заявки, используя плагин PhoneGap BarcodeScanner. Сканирование работает должным образом, но у меня возникают трудности при проверке QR-кода.
Моя идея заключается в том, что QR-код действителен только для пользователя, если userID и PromotionID совпадают с QR-кодом (в базе данных Firestore). Я использую идентификаторы документа для генерации QR-кода. Например, QR-код '075u6SGzsZ3tWq1v3Trb' и 'XXDzN47QXqsGZIMeySw0' может использовать только пользователь123.
Ниже приведена реализация
Example.page.ts:
qr: any;
scanQRCode () {
this.options= {
preferFrontCamera : false,
showFlipCameraButton : true,
showTorchButton:true,
disableSuccessBeep: false,
torchOn: false,
prompt: 'Scan your QRcode'
};
this.subscription = this.afs.collection('claims')
.snapshotChanges()
.subscribe(data => {
this.qr= data.map(e => {
return {
id: e.payload.doc.id,
promotionID: e.payload.doc.data()['promotion'],
userID: e.payload.doc.data()['user'],
};
})
console.log(this.item);
this.subscription.unsubscribe();
});
this.scanner.scan(this.options).then((data) => {
this.scannedData = data;
if(this.qr.promotionID && this.qr.userID == data){
this.navCtrl.navigateForward('/nextPage');
}else{
return this.presentAlert('Error','Invalid QRCODE')
}
}, (err) => {
console.log('Error: ',err);
})
}
Example.page.html
<ion-button expand="block" icon-left (click)="scanQRCode()"><ion-icon name="qr-scanner"></ion-icon>Scan code</ion-button>
Я новичок в Ionic и Firebase, любые идеи и советы будут с благодарностью.
Спасибо.