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

Posted

技术标签:

【中文标题】使用提供程序在 Flutter 中进行 Firebase 电话身份验证 [关闭]【英文标题】:Firebase Phone Authentication in Flutter using Provider [closed] 【发布时间】: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,有人可能会提供帮助。 【参考方案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;
  

【讨论】:

以上是关于使用提供程序在 Flutter 中进行 Firebase 电话身份验证 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中将 Firebase 数据作为 Listview 构建器获取

如何在 Flutter Firestore 提供程序中显示数据

Flutter中提供者有啥用?

如何使用提供程序在 Flutter ui 中使用 api 响应获取 ListView 构建器数据

Flutter:当应用程序在后台时使用路径提供程序

Flutter Firebase:我想使用 Stream 提供程序在应用程序中流式传输登录用户的详细信息