【问题标题】:Firebase Phone Authentication in Flutter using Provider [closed]使用提供程序在 Flutter 中进行 Firebase 电话身份验证 [关闭]
【发布时间】:2020-04-25 00:26:18
【问题描述】:

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

我需要帮助才能知道如何使用 Provider 实现相同的目标。

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

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

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;
  }
}

【问题讨论】:

  • 在 Stack Overflow 上寻求教程是题外话。搜索引擎可能是一个更好的地方。但是,如果您在使用电话号码的一次性密码登录时遇到问题,请编辑您的问题以包含 minimal code that reproduces that problem,有人可能会提供帮助。

标签: firebase flutter firebase-authentication bloc flutter-provider


【解决方案1】:
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;
  }
}

【讨论】:

    猜你喜欢
    • 2020-02-21
    • 2018-10-15
    • 2017-02-21
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 2018-07-03
    • 2019-10-10
    相关资源
    最近更新 更多