Аутентификация номера телефона флаттера - PullRequest
0 голосов
/ 31 августа 2018

пытаюсь аутентифицировать пользователя по номеру телефона от Jayesh Chawla из поста Здесь в ссылке ниже как бы то ни было у меня не работает. Вот моя функция для проверки подлинности телефона

     signUpUserPN()async{
      final PhoneVerificationCompleted verificationCompleted = (FirebaseUser user){
        setState(() {
                      message = Future<String>.value("auto sign in succedded $user");
                      print("Sign up succedded");
                      _pref.setString("phonkey",user.phoneNumber.toString());
                      //MyNavigator.goToDetail(context);
//called when the otp is variefied automatically
                    });
      };
  final PhoneVerificationFailed verificationFailed = (AuthException authException){
    setState(() {
                  message = Future<String>.value("verification failed code: ${authException.code}. Message: ${authException.message}");
                });
  };

  final PhoneCodeSent codeSent =(String dverificationId,[int forceResendingToken]) async {
    my1verificationId= dverificationId;
 };

  final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout = (String dverificationId){
    my1verificationId = dverificationId;
  };

  await _auth.verifyPhoneNumber(
    phoneNumber: '+233557340556',
    timeout: Duration(seconds: 60),
    verificationCompleted: verificationCompleted,
    verificationFailed: verificationFailed,
    codeSent: codeSent,
    codeAutoRetrievalTimeout: codeAutoRetrievalTimeout
    );
print("$message");
print("$my1verificationId");
}

1 Ответ

0 голосов
/ 31 августа 2018

Я создал класс util для аутентификации пользователя по номеру телефона. Перед использованием убедитесь, что вы настроили Firebase в Android и Ios, поскольку firebase объявляет здесь , и вы включили аутентификацию по номеру телефона с панели проекта Firebase. проверьте утилитарный класс ниже:

import 'dart:async';

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/services.dart';
import 'package:flutter_firebase/network/networ_util.dart';

class FirebasePhoneUtil {
  static final FirebasePhoneUtil _instance = new FirebasePhoneUtil.internal();

  FirebasePhoneUtil.internal();

  factory FirebasePhoneUtil() {
    return _instance;
  }

  FirebaseAuthListener _view;

  final FirebaseAuth _auth = FirebaseAuth.instance;
  var api = new NetworkUtil();

  String verificationId;

  setScreenListener(FirebaseAuthListener view) {
    _view = view;
  }

//  FirebasePhoneUtil(this._view);

  Future<void> verifyPhoneNumber(String phoneNumber, String code) async {
    final PhoneVerificationCompleted verificationCompleted =
        (FirebaseUser user) {};

    final PhoneVerificationFailed verificationFailed =
        (AuthException authException) {};

    final PhoneCodeSent codeSent =
        (String verificationId, [int forceResendingToken]) async {
      this.verificationId = verificationId;
      _view.verificationCodeSent(forceResendingToken);
    };

    final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout =
        (String verificationId) {};

    await _auth.verifyPhoneNumber(
        phoneNumber: code + phoneNumber,
        timeout: const Duration(seconds: 5),
        verificationCompleted: verificationCompleted,
        verificationFailed: verificationFailed,
        codeSent: codeSent,
        codeAutoRetrievalTimeout: codeAutoRetrievalTimeout);
  }

  verifyOtp(String smsCode) async {
    final FirebaseUser user = await _auth
        .signInWithPhoneNumber(
          verificationId: verificationId,
          smsCode: smsCode,
        )
        .then((FirebaseUser res) {
      identical("", "");
    })
        .catchError(
            (PlatformException error) => onTokenError(error.toString()));
  }
}

onTokenError(String string) {
  print("ssss");
}

abstract class FirebaseAuthListener {
  verificationCodeSent(int forceResendingToken);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...