使用提供商在Flatter中进行Firebase电话身份验证
我刚刚找到一家状态管理提供商,非常想知道如何使用提供商实现Firebase Phone Auth。目前,我正在使用状态小部件进行状态管理及其biolerplate,但我的手机身份验证正在工作 我需要帮助,以了解如何使用提供商实现相同的目标 任何教程、参考资料或实现都可以 当前身份验证提供程序类:使用提供商在Flatter中进行Firebase电话身份验证,firebase,flutter,firebase-authentication,bloc,flutter-provider,Firebase,Flutter,Firebase Authentication,Bloc,Flutter Provider,我刚刚找到一家状态管理提供商,非常想知道如何使用提供商实现Firebase Phone Auth。目前,我正在使用状态小部件进行状态管理及其biolerplate,但我的手机身份验证正在工作 我需要帮助,以了解如何使用提供商实现相同的目标 任何教程、参考资料或实现都可以 当前身份验证提供程序类: import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/services.dart'; import 'pa
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';
导入“包:flifter/services.dart”;
导入“包:flifter/services.dart”;
导入“包:ninja_firebase_test1/models/user.dart”;
类身份验证服务{
final FirebaseAuth _auth=FirebaseAuth.instance;
//基于FireBaseUser创建用户对象
用户\u userFromFirebaseUser(FirebaseUser用户){
返回用户!=null?用户(uid:user.uid):null;
}
//身份验证更改用户流
流获取用户{
返回_auth.onAuthStateChanged.map(_userFromFirebaseUser);
}
//核实电话号码
//使用电话功能注册,返回用户id
//
//注销
Future signOut()异步{
试一试{
return wait_auth.signOut();
}捕获(e){
打印(如toString());
返回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;
}
}