使用提供程序在 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 提供程序中显示数据