使用提供程序在 Flutter 中进行 Firebase 电话身份验证



我刚刚找到了一个用于状态管理的提供商,真的很想知道如何使用提供商暗示Firebase Phone Auth。目前,我正在使用有状态小部件进行状态管理及其生物板,但我的手机身份验证正在工作。

我需要帮助来了解如何使用提供程序实现相同的目标。

任何教程、参考或实现都可以。

当前身份验证提供程序类:

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/services.dart';
import 'package:flutter/services.dart';
import 'package:ninja_firebase_test1/models/user.dart';
class AuthService{
final FirebaseAuth _auth = FirebaseAuth.instance;
//create user object based on FireBaseUser
User _userFromFirebaseUser(FirebaseUser user){
return user != null ? User(uid: user.uid):null;
}
//auth change user stream
Stream<User> get user {
return _auth.onAuthStateChanged.map(_userFromFirebaseUser); 
}

// Verify Phone Number 
// Signup with phone Function, return user id 
// 


// sign out
Future signOut() async {
try{
return await _auth.signOut();
}  catch(e){
print(e.toString());
return null;
}
}
import 'package:firebase_auth/firebase_auth.dart';
class AuthService{
final FirebaseAuth _auth = FirebaseAuth.instance; 
//create user object based on FireBaseUser
User _userFromFirebaseUser(FirebaseUser user){
return user != null ? User(uid: user.uid):null;
}
// define _auth.verifyPhoneNumber() here
Future signInWithPhoneNumber(String smsCode) async {
try{ 
final AuthCredential credential = PhoneAuthProvider.getCredential(
verificationId: verificationId,
smsCode: smsCode,
);
AuthResult result = await _auth.signInWithCredential(credential);
FirebaseUser user= result.user;
return _userFromFirebaseUser(user);
} catch (e){
print(e.toString());
return null;
}
}