J'essaie d'intégrer le système d'authentification téléphonique dans mon application Flutter. Mais même lorsque je saisi un mauvais OTP, l'utilisateur est vérifié et entre dans la page suivante.
J'utilise la boîte de dialogue pour demander OTP P>
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return new AlertDialog(
title: Text('Enter sms Code'),
content: TextFormField(
controller: _smsController,
keyboardType: TextInputType.number,
textInputAction: TextInputAction.done,
decoration: InputDecoration(
hintText: 'Enter OTP', icon: Icon(Icons.perm_phone_msg)),
maxLength: 6,
maxLengthEnforced: true,
),
contentPadding: EdgeInsets.all(10.0),
actions: <Widget>[
new RaisedButton(
child: Text('Login'),
textColor: Colors.white,
onPressed: () {
_signInWithPhoneNumber(context);
})
],
);
});```
```void _signInWithPhoneNumber(BuildContext context) async {
final AuthCredential credential = await PhoneAuthProvider.getCredential(
verificationId: _verificationId,
smsCode: _smsController.text,
);
await _auth
.signInWithCredential(credential)
.then((FirebaseUser user) async {
final FirebaseUser currentUser = await _auth.currentUser();
assert(user.uid == currentUser.uid);
Navigator.of(context).pop();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => InfoScreen(_phoneNumberController.text)));
}).catchError((e) {
print(e.message);
Navigator.of(context).pop();
});
}
}```
3 Réponses :
Vous avez fait l'erreur avec le remplacez le code ci-dessus avec ceci: p> En utilisant ceci, vous pouvez vérifier le téléphone avec le code. Pour plus de détails, veuillez visiter ici p> p> phoneauthprovider code>
Je pense que vous devez ajouter un oncompletelistener en changeant le ".Chen (FirebaseUser ...)" à ".addonCompletTelistener (Ce nouvel ONCOMPLETelistener (Authrésult res) {});" p>
L'objet authrétsult a un booléen "issuccessful ()" que vous pouvez vérifier pour vous assurer que l'utilisateur est entré dans le code correct. p>
Je suppose que Firebase renvoie l'objet FireBaseUser, peu importe si le code correspond à. p>
Vous devez avoir la même valeur d'authentification pour vérifier un OTP de Firebase admin comme expliqué ici . p>