我刚刚找到了用于状态管理的提供商,并且非常想知道如何向 Provider 隐含 Firebase Phone Auth 。目前,我正在使用有状态的Widget进行状态管理及其biolerplate,但是我的电话身份验证正在运行。
我需要帮助来了解如何使用提供程序来达到相同的目的。
任何教程,参考资料或实现都可以。
当前身份验证提供者类别:
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;
}
}
答案 0 :(得分:0)
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;
}
}