Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用提供商在Flatter中进行Firebase电话身份验证_Firebase_Flutter_Firebase Authentication_Bloc_Flutter Provider - Fatal编程技术网

使用提供商在Flatter中进行Firebase电话身份验证

使用提供商在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

我刚刚找到一家状态管理提供商,非常想知道如何使用提供商实现Firebase Phone Auth。目前,我正在使用状态小部件进行状态管理及其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;
  }
}
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;
  }
}